(57)【要約】【課題】システム上でのサービス粒度の最適化を支援する新しいサービス粒度最適化支援装置等を提供する。【解決手段】ネットワークシステムにおいて提供される各サービスの粒度の最適化を支援する装置等であって、各サービスを実行した実行情報を記憶する記憶部と、第１のサービスの出力データと、該サービスの次に実行された第２のサービスの入力データとが同一であるサービスの組合せを探索する探索部と、前記サービスの組み合わせが存在する場合、前記各サービスの各インタフェース情報を取得する取得部と、前記各インタフェース情報から、前記第１のサービスの出力データの形式が前記第２のサービスの入力データの形式と一致するか否かを照合する照合部と、前記一致する場合、前記各インタフェース情報を合成したインタフェース情報を作成するインタフェース情報生成部と、を含むサービス粒度最適化支援装置。【選択図】図１
2011180890.tif 000002
【特許請求の範囲】
【請求項１】
複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援装置であって、
前記各サービスを実行した実行情報を記憶する実行情報記憶部と、
前記実行情報記憶部から、第１のサービスの出力データと、該第１のサービスの次に実行された第２のサービスの入力データとが同一であるサービスの組合せを探索するサービス探索部と、
前記サービス探索部により探索した結果、前記サービスの組み合わせが存在する場合、前記第１のサービスの第１インタフェース情報および前記第２のサービスの第２インタフェース情報を取得するインタフェース情報取得部と、
前記インタフェース情報取得部により取得した前記第１インタフェース情報および前記第２インタフェース情報から、前記第１のサービスの出力データの形式が前記第２のサービスの入力データの形式と一致するか否かを照合する入出力データ形式照合部と、
前記入出力データ形式照合部により照合した結果、前記第１のサービスの出力データの形式が前記第２のサービスの入力データの形式と一致する場合、前記第１インタフェース情報および前記第２インタフェース情報を合成したインタフェース情報を生成するインタフェース情報生成部と、
を含むサービス粒度最適化支援装置。
【請求項２】
前記インタフェース情報生成部により生成された前記合成したインタフェース情報を提示する提示部をさらに備える請求項１に記載のサービス粒度最適化支援装置。
【請求項３】
前記実行情報は、各サービスのサービス名情報、実行順序情報、入力データ情報、および出力データ情報を含む、請求項１または請求項２に記載のサービス粒度最適化支援装置。
【請求項４】
前記第１インタフェース情報、前記第２インタフェース情報、および前記合成したインタフェース情報は、ＷＳＤＬ文書の情報であることを特徴とする請求項１〜３のいずれか１つに記載のサービス粒度最適化支援装置。
【請求項５】
複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援装置であって、
前記各サービスを実行した実行情報であって、処理時間情報を含む実行情報を記憶する実行情報記憶部と、
前記実行情報記憶部から前記各サービスの処理時間情報を取得し、該取得した前記各サービスの処理時間情報に基づいて、前記ネットワークシステムにおけるサービス粒度の基準処理時間を算出する基準処理時間算出部と、
前記基準処理時間算出部により算出した前記基準処理時間と、前記各サービスの処理時間との乖離度合いを算出する乖離度合い算出部と、
を含むサービス粒度最適化支援装置。
【請求項６】
複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援方法であって、
前記各サービスを実行した実行情報を記憶する段階と、
前記記憶された実行情報から、第１のサービスの出力データと、該第１のサービスの次に実行された第２のサービスの入力データとが同一であるサービスの組合せを探索する段階と、
前記探索した結果、前記サービスの組み合わせが存在する場合、前記第１のサービスの第１インタフェース情報および前記第２のサービスの第２インタフェース情報を取得する段階と、
前記インタフェース取得部により取得した前記第１インタフェース情報および前記第２インタフェース情報から、前記第１のサービスの出力データの形式が前記第２のサービスの入力データの形式と一致するか否かを照合する段階と、
前記入出力データ照合部により照合した結果、前記第１のサービスの出力データの形式が前記第２のサービスの入力データの形式と一致する場合、前記第１インタフェース情報および前記第２インタフェース情報を合成したインタフェース情報を生成する段階と、
を含むサービス粒度最適化支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービス粒度最適化支援装置、およびサービス粒度最適化支援方法に関する。
【背景技術】
【０００２】
近年、変化するビジネスニーズに対してＩＴシステムを柔軟に対応させるため、ＳＯＡ（Service Oriented Architecture）が注目されている。ＳＯＡとは、サービス単位にアプリケーションをコンポーネント化（部品化）し、これらコンポーネント化したアプリケーション（サービス）を必要に応じて組み合わせることで、新たなシステムを構築可能にしたアーキテクチャである。
【０００３】
ＳＯＡにおいて、各サービスの設計者は、サービス単位の大きさ（サービス粒度）を如何に選択するかが重要となる。サービス粒度が小さすぎると、サービス間の連携が複雑になるため、通信にばかり時間がかかってロジックを実行する時間との釣り合いが取れなくなるとともに、サービス間のインタラクションが頻繁になるため、ネットワーク・トラフィックの増大も引き起こし得る。一方、サービス粒度が大きすぎると、サービスの再利用性は低くなり、また、サービスの一部に修正を加えたい場合は、サービス全体を再リリースしなければならず、システム全体に与える影響が大きくなってしまう。
【０００４】
しかしながら、サービス粒度は、通常、設計者の経験則などに基づいて定義されることが多く、分散して開発され、設計者が異なる場合、各サービスの粒度はバラバラになってしまうのが現状である。よって、サービス粒度の選択に際しては、その選択の指針が設計者に対して提供されることが望まれる。
【０００５】
特許文献１には、ＳＯＡシステム設計時で粒度を考慮した設計支援に関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−００９２０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載の技術では、システム運用前の設計時における静的な情報に基づいてサービスの設計支援を行うものであるため、設計段階では適切と考えたサービスの粒度が、実際のシステム運用時においても適切なサービスの粒度とは限らないという問題点があった。そのため、シテムスの運用段階にあたっては、運用に適した粒度へ最適化する必要がある。
【０００８】
そこで、本発明は、上記問題点を解決し、実際のシステム運用面に沿った適切なサービス粒度の情報を設計者に提供して、システム上でのサービス粒度の最適化を支援することができる新しいサービス粒度最適化支援装置、およびサービス粒度最適化支援方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明によるサービス粒度最適化支援装置は、複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援装置であって、前記各サービスを実行した実行情報を記憶する実行情報記憶部と、前記実行情報記憶部から、第１のサービスの出力データと、該第１のサービスの次に実行された第２のサービスの入力データとが同一であるサービスの組合せを探索するサービス探索部と、前記サービス探索部により探索した結果、前記サービスの組み合わせが存在する場合、前記第１のサービスの第１インタフェース情報および前記第２のサービスの第２インタフェース情報を取得するインタフェース情報取得部と、前記インタフェース情報取得部により取得した前記第１インタフェース情報および前記第２インタフェース情報から、前記第１のサービスの出力データの形式が前記第２のサービスの入力データの形式と一致するか否かを照合する入出力データ形式照合部と、前記入出力データ形式照合部により照合した結果、前記第１のサービスの出力データの形式が前記第２のサービスの入力データの形式と一致する場合、前記第１インタフェース情報および前記第２インタフェース情報を合成したインタフェース情報を生成するインタフェース情報生成部と、を含む。
【００１０】
また、本発明によるサービス粒度最適化支援装置は、複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援装置であって、前記各サービスを実行した実行情報であって、処理時間情報を含む実行情報を記憶する実行情報記憶部と、前記実行情報記憶部から前記各サービスの処理時間情報を取得し、該取得した前記各サービスの処理時間情報に基づいて、前記ネットワークシステムにおけるサービス粒度の基準処理時間を算出する基準処理時間算出部と、前記基準処理時間算出部により算出した前記基準処理時間と、前記各サービスの処理時間との乖離度合いを算出する乖離度合い算出部と、を含む構成とすることもできる。
【００１１】
本発明によるサービス粒度最適化支援方法は、複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援方法であって、前記各サービスを実行した実行情報を記憶する段階と、前記記憶された実行情報から、第１のサービスの出力データと、該第１のサービスの次に実行された第２のサービスの入力データとが同一であるサービスの組合せを探索する段階と、前記探索した結果、前記サービスの組み合わせが存在する場合、前記第１のサービスの第１インタフェース情報および前記第２のサービスの第２インタフェース情報を取得する段階と、前記インタフェース取得部により取得した前記第１インタフェース情報および前記第２インタフェース情報から、前記第１のサービスの出力データの形式が前記第２のサービスの入力データの形式と一致するか否かを照合する段階と、前記入出力データ照合部により照合した結果、前記第１のサービスの出力データの形式が前記第２のサービスの入力データの形式と一致する場合、前記第１インタフェース情報および前記第２インタフェース情報を合成したインタフェース情報を生成する段階と、を含む。
【発明の効果】
【００１２】
以上のように構成された本発明によれば、システム運用時に得られる入出力情報や実行プロセスなどのサービスの実行情報を利用することで、システムの運用面に沿った適切なサービス粒度の情報を設計者に提供し、設計者はシステムにおいて最適な粒度のサービスを生成することができる。よって、システム上でのサービス粒度の最適化を支援することができ、システム上における各サービスの応答時間の短縮や、サービスの再利用の向上といった効果が図れる。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態のサービス粒度最適化システムの概略構成を例示する図である。
【図２】第１実施形態のサービス粒度最適化支援装置等のハードウェア構成を示す概略図である。
【図３】サービス実行情報記憶部に記憶されているデータの一例を示す図である。
【図４】サービス情報管理装置で管理されているデータの一例を示す図である。
【図５】サービスＡのＷＳＤＬ文書の一例を示す図である。
【図６】サービスＢのＷＳＤＬ文書の一例を示す図である。
【図７】サービスＡとサービスＢの各ＷＳＤＬ文書を統合したＷＳＤＬ文書の一例を示す図である。
【図８】第１実施形態のサービス粒度最適化支援方法における処理内容を示すフローチャートである。
【図９】第２実施形態のサービス粒度最適化システムの概略構成を例示する図である。
【図１０】サービス実行情報記憶部に記憶されているデータの一例を示す図である。
【図１１】第２実施形態のサービス粒度最適化支援方法における処理内容を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための好適な実施形態を、図面を参照しながら説明する。なお、以下の各実施形態では、ＳＯＡシステムを用いる場合を例にとって説明する。
【００１５】
＜第１実施形態＞
図１は、本発明の第１実施形態のサービス粒度最適化支援システム１の概略構成を例示する図である。
【００１６】
サービス粒度最適化支援システム（以下、「システム」と称する）１は、図１に示すとおり、クライアント装置１００と、サービス粒度最適化支援装置２２０を含むメッセージ交換システム２００と、サービス装置３０１〜３０４を含むサービス群３００とを含んで構成され、各装置等は通信ネットワークを介して相互に通信可能に接続されている。なお、クライアント装置１００、サービス粒度最適化支援装置２２０、およびサービス装置３０１〜３０４等は、ハードウェアとして、図２に示すように、たとえば、ＣＰＵ、ＣＰＵにバス結合されたＲＯＭ、ＲＡＭ、記憶部、入力部、表示部、および入出力インタフェースなど、通常のコンピュータ装置と同様のハードウェアを備える。これら各装置は、物理的には、専用化したシステム、あるいは汎用の情報処理装置のいずれであってもよい。たとえば、一般的な構成の情報処理装置において、本発明のサービス粒度最適化支援方法における各処理を規定したソフトウェアを起動することにより、サービス粒度最適化支援装置２２０を実現することもできる。
【００１７】
クライアント装置１００は、メッセージ交換システム２００を介して、サービス装置３０１〜３０４のサービスＡ〜Ｄを利用する装置である。クライアント装置１００は、システム上におけるサービス粒度の最適化を支援するための情報を、メッセージ交換システム２００に対して要求する機能を有し、また、メッセージ交換システム２００内で実行された最適化支援処理の結果を受信して表示する機能を有する。なお、クライアント装置１００は、これらの機能以外は、原則として、従来のＳＯＡシステムを利用するクライアント装置と同様の機能を有することができるので、その詳細な説明は省略する。
【００１８】
サービス群３００は、分散アプリケーションの実行環境である外部システムであって、サービス装置３０１〜３０４を含む。サービス装置３０１〜３０４は、それぞれサービスＡ〜Ｄを実行する装置である。また、サービス装置３０１〜３０４において、上記サービスＡ〜Ｄは、たとえば、ＲＯＭまたはＨＤＤなどの記憶媒体に記憶され、該記憶されたソフトウェアはＣＰＵによって実行される。サービス装置３０１〜３０４自体は、原則として、従来のＳＯＡシステムにおけるサービス装置と同様の機能を有することができるので、その詳細な説明は省略する。また、サービス群３００に含まれるサービス装置は、上記４つの場合に限られず、少なくとも２つ以上、たとえば、２つ、５つと存在していてもよい。
【００１９】
メッセージ交換システム２００は、クライアント装置１００からサービス粒度の最適化を支援するための情報要求（最適化支援要求）を受け取り、該情報要求に対して最適化支援処理を実行し、該実行結果をクライアント装置１００に送る。メッセージ交換システム２００は、メッセージ送受信装置２１０、サービス粒度最適化支援装置２２０、サービス情報管理装置２３０を含んで構成される。なお、メッセージ交換システム２００は、従来のＳＯＡシステムにおけるクライアント装置１００とサービス群３００との間のメッセージを交換する機能も有するが、該機能は、原則として、従来のメッセージ交換システムと同様の構成および機能とすることができるので、以下、その詳細な説明は必要に応じて省略する。
【００２０】
メッセージ送受信装置２１０は、メッセージ送信部２１１、メッセージ受信部２１２、およびサービス実行情報取得部２１３を含んで構成される。
【００２１】
メッセージ送信部２１１およびメッセージ受信部２１２は、クライアント装置１００とサービス装置３０１〜３０４との間でメッセージを送受信する。
【００２２】
サービス実行情報取得部２１３は、クライアント装置１００とサービス装置３０１〜３０４との間で送受信されるメッセージから、ＳＯＡシステムにおいて実行された各サービスの実行情報を取得する。サービス実行情報取得部２１３は、取得した各サービスの実行情報をサービス粒度最適化支援装置２２０のサービス実行情報記憶部２２１に送る。なお、サービスの実行情報が、各サービス装置３０１〜３０４に記憶される場合、サービス実行情報取得部２１３は、各サービス装置３０１〜３０４にアクセスしてサービスの実行情報を取得することもできる。
【００２３】
ここで、ＳＯＡシステムにおいて実行された各サービスの実行情報は、たとえば、図３に示すように、実行日時、呼び出し元、実行サービス名、呼び出し順序（実行順序）、ＩｎｐｕｔＤａｔａ、およびＯｕｔｐｕｔＤａｔａの各情報を含む。
【００２４】
サービス情報管理装置２３０は、各サービスのＷＳＤＬ文書等を管理するデータベースである。
【００２５】
ここで、サービス情報管理装置２３０が管理する情報は、たとえば、図４に示すように、サービス名（ＱＮａｍｅ）、ＷＳＤＬ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）文書の各情報を含む。ＷＳＤＬは、サービスの提供されている場所、サービスに用いられているメッセージのフォーマット、プロトコルなどＷｅｂサービスの具体的内容が記述される。ＷＳＤＬによるインタフェースの定義には、Ｗｅｂ上におけるサービスを利用する際の入出力データの型やアクセス先ＵＲＬなどを記述することができ、ユーザは、利用したいサービスのＷＳＤＬ記述を見れば、そのＷｅｂサービスへのアクセス方法を知ることができる。
【００２６】
サービス粒度最適化支援装置２２０は、各サービスの実行情報からシステムに適切なサービス粒度の情報をクライアント装置に対して提示する機能を有する。サービス粒度最適化支援装置２２０は、サービス実行情報記憶部２２１、サービス探索部２２２、インタフェース情報取得部２２３、入出力データ形式照合部２２４、ＷＳＤＬ情報生成部２２５、および提示部２２６を含んで構成される。また、サービス探索部２２２などの各部は、たとえば、主にＣＰＵがＲＯＭやＲＡＭに格納されるプログラムを実行し、各ハードウェアを制御することにより、実現することができ、また、サービス実行情報記憶部２２１は、ＲＡＭや記憶部を用いて実現することができる。
【００２７】
サービス実行情報記憶部（実行情報記憶部）２２１は、サービス実行情報取得部２１３が取得した上記実行情報を記憶するためのデータベースである。
【００２８】
サービス探索部２２２は、クライアント装置１００から最適化支援要求を受け取ると、サービス実行情報記憶部２２１に対してクエリを発行して各サービスの実行情報を取得し、該取得したサービスの中から、第１のサービスの出力データ（ＯｕｔｐｕｔＤａｔａ）と、該第１のサービスの次に実行された第２のサービスの入力データ（ＩｎｐｕｔＤａｔａ）とが同一であるサービスの組合せを探索する。すなわち、サービス探索部２２２は、実行順序がＸ番目のサービスを第１のサービス、Ｘ＋１番目のサービスを第２のサービスであるとすれば、「第１のサービスの出力データ＝第２のサービスの入力データ」の関係を満たすサービスの組み合わせを探索する。図３に示す実行情報を例にとると、たとえば、あるクライアントＡが実行したサービスであれば、呼び出し順序が「１」の出力データ「２４５０」と、呼び出し順序が「２（１＋１）」の入力データ「２４５０」とが同一であるサービスの組み合わせ（サービスＡとサービスＢ）を探索することができる。
【００２９】
インタフェース情報取得部（ＷＳＤＬ文書取得部）２２３は、サービス探索部２２２により探索した結果、上記関係を満たすサービスの組み合わせが存在する場合、サービス情報管理装置２３０に対してクエリを発行して、サービス情報管理装置２３０から第１のサービスの第１インタフェース情報および第２のサービスの第２インタフェース情報を取得する。すなわち、図３に示す実行情報を例にとると、たとえば、第１のサービス、第２のサービスに相当するサービスＡ、サービスＢの各インタフェース情報としてのＷＳＤＬ文書をサービス情報管理装置２３０から取得する。サービスＡおよびサービスＢの各ＷＳＤＬ文書の例を図５および図６に示す。
【００３０】
入出力データ形式照合部２２４は、インタフェース情報取得部２２３により取得した第１インタフェース情報および第２インタフェース情報から、第１のサービスの出力データの形式が第２のサービスの入力データの形式と一致するか否かを照合する。すなわち、入出力データ形式照合部２２４は、「第１のサービスのｏｕｔｐｕｔ（出力データ）の型＝第２のサービスのｉｎｐｕｔ（入力データ）の型」の関係を満たすか否かを照合する。入出力データ形式照合部２２４は、照合した結果、両形式が一致する場合、各インタフェース情報（ＷＳＤＬ文書）をインタフェース情報生成部２２５に送る。
【００３１】
インタフェース情報生成部（ＷＳＤＬ生成部）２２５は、入出力データ形式照合部２２４により照合した結果、第１のサービスの出力データの形式が第２のサービスの入力データの形式と一致する場合、第１インタフェース情報および第２インタフェース情報を合成したインタフェース情報を生成する。たとえば、サービスＡ、サービスＢの各インタフェース情報としてのＷＳＤＬ文書がそれぞれ図５，６に示すものである場合、図７に示すような、新たなインタフェース情報（ＷＳＤＬ文書）を生成する。
【００３２】
提示部２２６は、インタフェース情報生成部２２５により生成されたインタフェース情報（ＷＳＤＬ文書）を提示する。提示部２２６は、ネットワークを介して、最適化支援要求を送ったクライアント装置１００に上記インタフェース情報を送ることで、該インタフェース情報をクライアント装置１００に対して提示することができる。
【００３３】
以下、図８に示すフローチャートを参照して、サービス粒度最適化支援システム１を用いて実施される本実施形態のサービス粒度最適化方法を説明する。サービス情報管理装置２３０には、予め各サービスのインタフェース情報（ＷＳＤＬ文書）等が管理され、また、サービス実行情報記憶部２２１には、実際にシステムを運用して各サービスが実行された際の実行情報が予め記憶されているものとする。なお、各処理は、処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【００３４】
まず、サービス粒度最適化支援装置２２０は、クライアント装置１００から最適化支援要求を受け取ると、サービス実行情報記憶部２２１に対してクエリを発行して各サービスの実行情報を取得する（ステップＳ１００）。たとえば、図３に示す各サービスの実行情報を取得する。
【００３５】
次いで、サービス粒度最適化支援装置２２０は、取得したサービスの中から、第１のサービスの出力データと、該第１のサービスの次に実行された第２のサービスの入力データとが同一であるサービスの組合せを探索する（ステップＳ１０１）。たとえば、図３に示す実行情報を例にとると、あるクライアントＡが実行したサービスであれば、呼び出し順序が「１」の出力データ「２４５０」と、呼び出し順序が「２（１＋１）」の入力データ「２４５０」とが同一であるサービスの組み合わせ（サービスＡとサービスＢ）を探索することができる。
【００３６】
探索した結果、上記サービスの組合せが存在する場合（ステップＳ１０２：Ｙｅｓ）、サービス粒度最適化支援装置２２０は、サービス情報管理装置２３０に対してクエリを発行して、サービス情報管理装置２３０から第１のサービスの第１インタフェース情報および第２のサービスの第２インタフェース情報を取得する（ステップＳ１０３）。たとえば、該当するサービスの組み合わせが、サービスＡとサービスＢであれば、図５および図６に示す各インタフェース情報としてのＷＳＤＬ文書を取得する。なお、上記サービスの組合せが存在しない場合（ステップＳ１０３：Ｎｏ）、本処理フローは終了する。
【００３７】
ステップＳ１０３の処理後、サービス粒度最適化支援装置２２０は、インタフェース情報取得部２２３により取得した第１インタフェース情報および第２インタフェース情報から、第１のサービスの出力データの形式が第２のサービスの入力データの形式と一致するか否かを照合する（ステップＳ１０４）。たとえば、照合する対象の第１インタフェース情報を図５に示すＷＳＤＬ文書、および第２インタフェース情報を図６に示すＷＳＤＬ文書とすれば、図５のＷＳＤＬ文書内の「ｏｕｔｐｕｔ  ｎａｍｅ」と図６のＷＳＤＬ文書内の「ｉｎｐｕｔ  ｎａｍｅ」とで照合した場合、データ形式は一致すると判断することができる。
【００３８】
照合した結果、データ形式が一致する場合（ステップＳ１０５：Ｙｅｓ）、サービス粒度最適化支援装置２２０は、第１インタフェース情報および第２インタフェース情報を合成したインタフェース情報を生成する（ステップＳ１０６）。たとえば、照合する対象の第１インタフェース情報を図５に示すＷＳＤＬ文書、および第２インタフェース情報を図６に示すＷＳＤＬ文書とすれば、図７に示すような、新たなインタフェース情報（ＷＳＤＬ文書）を生成することができる。なお、データ形式が一致しない場合（ステップＳ１０５：Ｎｏ）、本処理フローは終了する。
【００３９】
ステップＳ１０６の処理後、サービス粒度最適化支援装置２２０は、生成されたインタフェース情報（ＷＳＤＬ文書）を提示する（ステップＳ１０７）。すなわち、ネットワークを介して、最適化支援要求を送ったクライアント装置１００に上記インタフェース情報を送ることで、該インタフェース情報をクライアント装置１００に対して提示することができる。
【００４０】
以上のように、本実施形態のサービス粒度最適化支援システム１およびサービス粒度最適化支援方法によれば、システムの運用面に沿った適切なサービスを生成できる。その結果、システムの応答時間の短縮やサービスの管理・保守の容易さを向上させるといった効果が図れる。その理由は、サービス粒度最適化支援装置２２０が、実際にシステム運用を開始しないと分からない各サービスの実行情報をもとに、よりシステムに適したサービスの粒度を判断し、サービスの仕様を示したＷＳＤＬ文書などを生成することができるためである。システムに対して必要以上に細かい粒度で定義されたサービスを統合することで、クライアント装置とサービス装置との間の通信量を削減できることからシステムの応答時間を短縮させることができ、またサービスの連携がシンプルになることでサービスの管理・保守が容易となり運用コストを削減できるといった効果が期待できる。
【００４１】
＜第２実施形態＞
図９は、本発明の第２実施形態のサービス粒度最適化支援システム２の概略構成を例示する図である。第２実施形態のサービス粒度最適化支援システム２は、図９に示すとおり、クライアント装置１００と、サービス粒度最適化支援装置２４０を含むメッセージ交換システム２００'と、サービス装置３０１〜３０４を含むサービス群３００とを含んで構成され、各装置等は通信ネットワークを介して相互に通信可能に接続されている。なお、第１実施形態のサービス粒度最適化支援システム１と共通の構成については、ここでの詳細な説明は省略する。
【００４２】
メッセージ交換システム２００'は、メッセージ送受信装置２１０'、サービス情報管理装置２３０、サービス粒度最適化支援装置２４０を含んで構成される。
【００４３】
メッセージ送受信装置２１０'は、メッセージ送信部２１１、メッセージ受信部２１２、およびサービス実行情報取得部２１３'を含んで構成され、メッセージ送信部２１１およびメッセージ受信部２１２は、クライアント装置１００とサービス装置３０１〜３０４との間でメッセージを送受信する。
【００４４】
サービス実行情報取得部２１３'は、クライアント装置１００とサービス装置３０１〜３０４との間で送受信されるメッセージから、ＳＯＡシステムにおいて実行された各サービスの実行情報（処理時間情報含む）を取得する。サービス実行情報取得部２１３'は、取得した各サービスの処理時間情報をサービス粒度最適化支援装置２４０のサービス実行情報記憶部２４１に送る。
【００４５】
ここで、本実施形態における各サービスの処理時間情報は、たとえば、図１０に示すように、実行日時、呼び出し元、実行サービス名、処理時間［ｍｓ］の各情報を含む。
【００４６】
サービス粒度最適化支援装置２４０は、サービス実行情報記憶部２４１、基準処理時間算出部２４２、乖離度合い算出部２４３、および提示部２４４を含んで構成される。
【００４７】
サービス実行情報記憶部（実行情報記憶部）２４１は、サービス実行情報取得部２１３'が取得した処理時間情報を含む実行情報を記憶するためのデータベースである。
【００４８】
基準処理時間算出部２４２は、クライアント装置１００から最適化支援要求を受け取ると、サービス実行情報記憶部２４１に対してクエリを発行して各サービスの処理時間情報を取得し、該取得した各サービスの処理時間情報に基づいて、システムにおけるサービス粒度の基準処理時間を算出する。基準処理時間は、本実施形態において、サービス粒度の指標とするものであって、取得した各サービスの処理時間の中央値とする。すなわち、各サービスの処理時間ｘ1、ｘ2、・・・、ｘnを、処理時間の小さい順に並べ替えたものをｘ'1、ｘ'2、・・・、ｘ'nとして、式（１）を用いて中央値Ｑ1/2（ｘ）を算出する。なお、基準処理時間は、上記各サービスの処理時間の中央値とする場合に限られず、たとえば、各サービスの処理時間の平均値など適宜自由に設定することができる。
【００４９】
【数１】
2011180890.tif 000003
【００５０】
乖離度合い算出部２４３は、基準処理時間算出部２４２により算出した基準処理時間と、各サービスの処理時間との乖離度合いを算出する。サービスの処理時間と、算出した基準処理時間（中央値）との乖離度合いを算出し、該乖離度合いを指標にしてクライアント装置１００に提示することで、サービスの設計者は、各サービスをどの程度の粒度に分割／統合することが適切かを判断することができる。
【００５１】
提示部２４４は、乖離度合い算出部２４３により算出された各サービスの処理時間との乖離度合いを提示する。提示部２４４は、ネットワークを介して、最適化支援要求を送ったクライアント装置１００に上記乖離度合い情報を送ることで、該乖離度合い情報をクライアント装置１００に対して提示することができる。また、提示部２４４は、上記式（１）の式において、ｎが偶数の場合、「ｘ'(n+1)/2」のサービスが、または、ｎが奇数の場合、「ｘ'n/2」「ｘ'n/2+1」のサービスが、粒度診断の基準となったことをクライアント装置１００に対して提示することもできる。
【００５２】
以下、図１１に示すフローチャートを参照して、第２実施形態におけるサービス粒度最適化支援システム２を用いて実施されるサービス粒度最適化支援方法を説明する。サービス実行情報記憶部２４１には、実際にシステムを運用して各サービスが実行された際の実行情報（処理時間情報含む）が予め記憶されているものとする。なお、各処理は、処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【００５３】
まず、サービス粒度最適化支援装置２４０は、クライアント装置１００から最適化支援要求を受け取ると、サービス実行情報記憶部２４１に対してクエリを発行して各サービスの処理時間情報を取得する（ステップＳ２００）。たとえば、図１０に示す各サービスの処理時間情報を取得する。
【００５４】
次いで、サービス粒度最適化支援装置２４０は、該取得した各サービスの処理時間情報に基づいて、システムにおけるサービス粒度の基準処理時間を算出する（ステップＳ２０１）。基準処理時間は、本実施形態において、サービス粒度の指標とするものであって、取得した各サービスの処理時間の中央値とする。すなわち、各サービスの処理時間ｘ1、ｘ2、・・・、ｘnを、処理時間の小さい順に並べ替えたものをｘ'1、ｘ'2、・・・、ｘ'nとして、上記式（１）を用いて中央値Ｑ1/2（ｘ）を算出する。
【００５５】
次いで、サービス粒度最適化支援装置２４０は、基準処理時間算出部２４２により算出した基準処理時間と、各サービスの処理時間との乖離度合いを算出する（ステップＳ２０２）。
【００５６】
次いで、サービス粒度最適化支援装置２４０は、乖離度合い算出部２４３により算出された各サービスの処理時間との乖離度合いを提示する（ステップＳ２０３）。ネットワークを介して、最適化支援要求を送ったクライアント装置１００に上記乖離度合い情報を送ることで、該乖離度合い情報をクライアント装置１００に対して提示することができる。また、提示部２４４は、上記式（１）の式において、ｎが偶数の場合、「ｘ'(n+1)/2」のサービスが、または、ｎが奇数の場合、「ｘ'n/2」「ｘ'n/2+1」のサービスが、粒度診断の基準となったことをクライアント装置１００に対して提示することもできる。
【００５７】
以上のように、本実施形態のサービス粒度最適化支援システム２およびサービス粒度最適化支援方法によれば、既にシステムで運用されているサービスの粒度を適切に揃えるための指針を得ることができる。その理由として、本実施形態では、サービスの処理時間に着目して定量的にサービスの粒度を判断することができるためである。サービス粒度の大小やシステム上におけるサービス粒度の適切さに対する判断は、経験則に基づくところが多いと言われているが、そのひとつの判断基準として処理時間があげられる。たとえば、Ｃ＋＋やＪａｖａ（登録商標）などの同一のアドレス空間内で動作する言語オブジェクトの場合はナノ秒単位、ＣＯＢＲＡやＥＪＢなどのマシンをまたがって動作する分散オブジェクトの場合はミリ秒単位、ＢｔｏＢなどのシステムをまたがって動作するＷｅｂサービスの場合は数百ミリ秒〜秒単位が適切だと言われている。
【００５８】
＜変形例＞
以上のように本発明の好適な実施形態について説明したが、本発明は、以上の実施形態に限定されるべきものではなく、特許請求の範囲に表現された思想および範囲を逸脱することなく、種々の変形、追加、および省略が当業者によって可能である。
【００５９】
たとえば、上記各実施形態では、サービス粒度最適化支援装置２２０，２４０がメッセージ交換システム２００内に設けられる場合を例にとって説明したが、本発明はこれに限られず、メッセージ交換システム２００とは別途に設けることもでき、たとえば、あるサービス装置に設けてもよい。
【００６０】
また、上記実施形態では、ＳＯＡシステムを前提に説明したが、本発明はこれに限られず、たとえば、ＳＯＡシステム以外に、複数のサービスを連携して利用する場合について適用可能なことはもちろんである。
【００６１】
さらに、上記各実施形態では、サービス粒度最適化支援装置２２０，２４０において、それぞれの処理機能を有する各部が備えられている構成を説明したが、本発明はこれに限られず、各部がサービス粒度最適化支援装置２２０，２４０と通信可能に接続されたネットワーク上に又は他の装置に備えて構成することもできる。
【００６２】
さらに、サービス粒度最適化支援装置２２０，２４０には、用途に応じた各部がそれぞれ備えられているが、サービス粒度最適化支援装置２２０，２４０に備えられている各部は、そのいくつかを一纏めにして構成されていてもよいし、一つの部をさらに複数の部に分割して構成されていてもよい。
【００６３】
さらに、第１実施形態のサービス粒度最適化支援装置２２０、および第２実施形態のｓ−ビス粒度最適化支援装置２４０を組み合わせたサービス粒度最適化支援装置を構成することもできる。
【００６４】
上記の実施形態の一部または全部は、以下の吹きのようにも記載されうるが、以下には限られない。
【００６５】
（付記１）複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援装置であって、前記各サービスを実行した実行情報を記憶する実行情報記憶部と、前記実行情報記憶部から、第１のサービスの出力データと、該第１のサービスの次に実行された第２のサービスの入力データとが同一であるサービスの組合せを探索するサービス探索部と、前記第１のサービスの第１インタフェース情報および前記第２のサービスの第２インタフェース情報を取得するインタフェース情報取得部と、前記インタフェース情報取得部により取得した前記第１インタフェース情報および前記第２インタフェース情報から、前記第１のサービスの出力データの形式が前記第２のサービスの入力データの形式と一致するか否かを照合する入出力データ形式照合部と、前記入出力データ形式照合部により照合した結果、前記第１のサービスの出力データの形式が前記第２のサービスの入力データの形式と一致する場合、前記第１インタフェース情報および前記第２インタフェース情報を合成したインタフェース情報を生成するインタフェース情報生成部と、を含むサービス粒度最適化支援装置。
【００６６】
（付記２）前記インタフェース情報生成部により生成された前記合成したインタフェース情報を提示する提示部をさらに備える付記１に記載のサービス粒度最適化支援装置。
【００６７】
（付記３）前記実行情報は、各サービスのサービス名情報、実行順序情報、入力データ情報、および出力データ情報を含む、付記１または付記２に記載のサービス粒度最適化支援装置。
【００６８】
（付記４）前記第１インタフェース情報、前記第２インタフェース情報、および前記合成したインタフェース情報は、ＷＳＤＬ文書の情報であることを特徴とする付記１〜３のいずれか１つに記載のサービス粒度最適化支援装置。
【００６９】
（付記５）複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援装置であって、前記各サービスを実行した実行情報であって、処理時間情報を含む実行情報を記憶する実行情報記憶部と、前記実行情報記憶部から前記各サービスの処理時間情報を取得し、該取得した前記各サービスの処理時間情報に基づいて、前記ネットワークシステムにおけるサービス粒度の基準処理時間を算出する基準処理時間算出部と、前記基準処理時間算出部により算出した前記基準処理時間と、前記各サービスの処理時間との乖離度合いを算出する乖離度合い算出部と、を含むサービス粒度最適化支援装置。
【００７０】
（付記６）前記乖離度合い算出部により算出された前記各サービスの処理時間との乖離度合いを提示する提示部をさらに含む付記５に記載のサービス粒度最適化支援装置。
【００７１】
（付記７）前記実行情報は、各サービスのサービス名情報、実行順序情報、処理時間情報を含む、付記５または付記６に記載のサービス粒度最適化支援装置。
【００７２】
（付記８）複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援方法であって、前記各サービスを実行した実行情報を記憶する段階と、前記記憶された実行情報から、第１のサービスの出力データと、該第１のサービスの次に実行された第２のサービスの入力データとが同一であるサービスの組合せを探索する段階と、前記探索した結果、前記サービスの組み合わせが存在する場合、前記第１のサービスの第１インタフェース情報および前記第２のサービスの第２インタフェース情報を取得する段階と、前記インタフェース取得部により取得した前記第１インタフェース情報および前記第２インタフェース情報から、前記第１のサービスの出力データの形式が前記第２のサービスの入力データの形式と一致するか否かを照合する段階と、前記入出力データ照合部により照合した結果、前記第１のサービスの出力データの形式が前記第２のサービスの入力データの形式と一致する場合、前記第１インタフェース情報および前記第２インタフェース情報を合成したインタフェース情報を生成する段階と、を含むサービス粒度最適化支援方法。
【符号の説明】
【００７３】
１  サービス粒度最適化支援システム、
１００  クライアント装置、
２００  メッセージ交換装置、
２１０  メッセージ送受信装置、
２１１  メッセージ送信部、
２１２  メッセージ受信部、
２１３  サービス実行情報取得部、
２２０  サービス粒度最適化支援装置、
２２１  サービス実行情報記憶部、
２２２  サービス探索部、
２２３  インタフェース情報取得部、
２２４  入出力データ形式照合部、
２２５  インタフェース生成部、
２２６  提示部、
２３０  サービス情報管理装置、
３００  サービス群、
３０１〜３０４  サービス装置。
【図１】
2011180890.tif 000004
【図２】
2011180890.tif 000005
【図３】
2011180890.tif 000006
【図４】
2011180890.tif 000007
【図５】
2011180890.tif 000008
【図６】
2011180890.tif 000009
【図７】
2011180890.tif 000010
【図８】
2011180890.tif 000011
【図９】
2011180890.tif 000012
【図１０】
2011180890.tif 000013
【図１１】
2011180890.tif 000014