(57)【要約】Ｗｅｂサービス構築管理方法を実施するための装置１００は、サービス非機能要求情報を作成する手段１１１、組合せ可能な実装機能群の情報を保管する手段１２９、非機能要求を実現する論理モデル情報を作成する手段１１２、この論理モデル情報に基づいて論理モデルを実現し前記組合せ可能な実装機能群を備えたプログラム群を生成する手段１１３、サービス非機能要求情報を保管する手段１２１、前記プログラム群を保管する手段１２２、前記非機能要求を解釈するとともに前記組合せ可能な実装機能群を選択して前記プログラム群から実行プログラムを構成する１２３手段、及び前記実行プログラムを実行する手段１２５を備える。
2011096314.tif 000002
【特許請求の範囲】
【請求項１】
非機能要求に基づいてサービス非機能要求情報を作成するサービス非機能要求記述段階と、
前記非機能要求に基づいて組合せ可能な実装機能群の情報を保管する実装機能群保管段階と、
前記要求を実現するためのサービス論理モデル情報を作成するサービス論理モデル記述段階と、
前記論理モデル情報に基づいて前記論理モデルを実現するとともに、前記実装機能群情報に基づいて前記非機能要求と組合せ可能な実装機能群を備えたプログラム群を生成するプログラム群生成段階と、
前記サービス非機能要求情報を保管する非機能要求保管段階と、
前記プログラム群を保管するプログラム群保管段階と、
前記非機能要求を解釈するとともに前記組合せ可能な実装機能群を選択して前記プログラム群から実行プログラムを構成する実行プログラム構成段階と、
前記実行プログラムを実行するサービス実行段階と、
を備えることを特徴とするＷｅｂサービス構築管理方法。
【請求項２】
請求項１に記載のＷｅｂサービス構築管理方法において、前記実行プログラム構成段階では、ＣＰＵ利用率、ネットワーク帯域占有率、及びファイルＩＯ頻度などのシステム負荷情報を用いて、前記非機能要求を満たすように、前記プログラム群保管段階にて保管されたプログラムを選択して構成プログラムを決定することを特徴とするＷｅｂサービス構築管理方法。
【請求項３】
請求項１に記載のＷｅｂサービス構築管理方法において、前記プログラム群生成段階は、サービス論理モデル情報を実現するプログラムを、アプリケーションレベル、ＤＢ／ストレージレベル、ＯＳレベルなどの階層ごとに生成する機能を備えることを特徴とするＷｅｂサービス構築管理方法。
【請求項４】
請求項１に記載のＷｅｂサービス構築管理方法において、前記実行プログラム構成段階は、前記非機能要求を満たすように、プログラム群保管段階で保管されたプログラムを選択するとともに、前記組合せ可能な実装機能群のプログラムをサービス実行エンジンに配置することを備えることを特徴とするＷｅｂサービス構築管理方法。
【請求項５】
非機能要求に基づいてサービス非機能要求情報を作成するサービス非機能要求記述手段と、
前記非機能要求に基づいて組合せ可能な実装機能群の情報を保管する実装機能群保管手段と、
前記要求を実現するためのサービス論理モデル情報を作成するサービス論理モデル記述手段と、
前記論理モデル情報に基づいて前記論理モデルを実現するとともに、前記実装機能群情報に基づいて前記非機能要求と組合せ可能な実装機能群を備えたプログラム群を生成するプログラム群生成手段と、
前記サービス非機能要求情報を保管する非機能要求保管手段と、
前記プログラム群を保管するプログラム群保管手段と、
前記非機能要求を解釈するとともに前記組合せ可能な実装機能群を選択して前記プログラム群から実行プログラムを構成する実行プログラム構成手段と、
前記実行プログラムを実行するサービス実行手段と、
を備えることを特徴とするＷｅｂサービス構築管理装置。
【請求項６】
請求項５に記載のＷｅｂサービス構築管理装置において、前記実行プログラム構成手段は、ＣＰＵ利用率、ネットワーク帯域占有率、及びファイルＩＯ頻度などのシステム負荷情報を用いて、前記非機能要求を満たすように構成プログラムを決定するか、もしくは、前記非機能要求を満たすように、前記プログラム群保管手段に保管されたプログラムを選択し、サービス実行エンジンに前記組合せ可能な実装機能群のプログラムを配置することを特徴とするＷｅｂサービス構築管理装置。
【請求項７】
請求項５に記載のＷｅｂサービス構築管理装置において、前記プログラム群生成手段は、サービス論理モデル情報を実現するプログラムを、アプリケーションレベル、ＤＢ／ストレージレベル、ＯＳレベルなどの階層ごとに生成することを特徴とするＷｅｂサービス構築管理装置。
【請求項８】
コンピュータを、
非機能要求に基づいてサービス非機能要求情報を作成するサービス非機能要求記述手段と、
前記非機能要求に基づいて組合せ可能な実装機能群の情報を保管する実装機能群保管手段と、
前記要求を実現するためのサービス論理モデル情報を作成するサービス論理モデル記述手段と、
前記論理モデル情報に基づいて前記論理モデルを実現するとともに、前記実装機能群情報に基づいて前記非機能要求と組合せ可能な実装機能群を備えたプログラム群を生成するプログラム群生成手段と、
前記サービス非機能要求情報を保管する非機能要求保管手段と、
前記プログラム群を保管するプログラム群保管手段と、
前記非機能要求を解釈するとともに前記組合せ可能な実装機能群を選択して前記プログラム群から実行プログラムを構成する実行プログラム構成手段と、
前記実行プログラムを実行するサービス実行手段として機能させることを特徴とするＷｅｂサービス構築管理プログラム。
【請求項９】
請求項８に記載のＷｅｂサービス構築管理プログラムにおいて、前記プログラム群生成手段は、サービス論理モデル情報を実現するプログラムを、アプリケーションレベル、ＤＢ／ストレージレベル、ＯＳレベルなどの階層ごとに生成する機能を備えることを特徴とするＷｅｂサービス構築管理プログラム。
【請求項１０】
請求項８に記載のＷｅｂサービス構築管理プログラムにおいて、実行プログム構成手段は、非機能要求を満たすように、プログラム群保管段階で保管されたプログラムを選択し、サービス実行エンジンにプログラムを自動配置する機能を備えることを特徴とするＷｅｂサービス構築管理プログラム。
【請求項１１】
請求項１に記載のＷｅｂサービス構築管理方法において、前記サービス実行段階の後、ＣＰＵ利用率、ネットワーク帯域占有率、及びファイルＩＯ頻度の少なくともひとつを含むシステム負荷情報に係る値を監視し、当該値と予め定められた閾値との比較結果に応じて、前記実行プログラム構成段階及び前記サービス実行段階を、前記比較時のシステム負荷情報に基づいて再実行することを特徴とするＷｅｂサービス構築管理方法。
【請求項１２】
請求項６に記載のＷｅｂサービス構築管理装置において、
前記サービス実行手段にて前記実行プログラムを実行しているときの前記システム負荷情報に係る値と予め定められた閾値とを比較する手段を更に備え、
前記比較の結果に応じて、前記実行プログラム構成手段及び前記サービス実行手段を、前記比較時のシステム負荷情報に基づいて再実行する
ことを特徴とするＷｅｂサービス構築装置。
【請求項１３】
請求項８に記載のＷｅｂサービス構築管理プログラムにおいて、
前記サービス実行手段にて前記実行プログラムを実行しているときのシステム負荷情報に係る値と予め定められた閾値とを比較する手段としてコンピュータを更に機能させ、
前記比較の結果に応じて、前記実行プログラム構成手段及び前記サービス実行手段を、前記比較時のシステム負荷情報に基づいて再実行する
ことを特徴とするＷｅｂサービス構築プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非機能要求に基づく、スケール性の高いＷｅｂサービス構築および運用に関し、詳しくは、そのようなＷｅｂサービス構築管理方法、装置、及びプログラムに関する。
【背景技術】
【０００２】
従来、ＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）、ＰａａＳ（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）、ＩａａＳ（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）などのクラウドサービスを提供するプロバイダは、Ｗｅｂサービス機能レイヤ、Ｗｅｂサービス基盤レイヤ、オペレーティングシステムレイヤのサービス機能を提供している。これに対して、ユーザは、システム基盤の仕組みを意識し、どのレイヤのサービスを用いるのかを決定している。
今後、企業システムで処理するデータには、インターネットサービスのブログ情報や、インターネット上での口コミによる情報検索、ユビキタス機器のセンサー情報の蓄積・処理など、大量のデータを扱う可能性が増えてきている。これらのデータは、システムの定常運用中に短期間に爆発的に増大する可能性がある。そのため、システムインテグレーションの担当者は、従来のオンプレミス・システム（企業内システム）のスケールアップだけでなく、スケールアウトを考慮したシステム設計が求められてくる。
これら要求を満たすために、小規模のデータ量の変化に対しては、システムを多重化構成し処理負荷を低減する試みが行われている。また、大量のデータや大規模のデータ量の変化に対しては、グリッドコンピューティングによるシステム実行ノードの動的な変更が行われてきた。
ただし、従来のシステムは、設計時に運用中のデータ量の変化が予測し得る範囲であった。そのため、システム運用中にこれらの異なる負荷分散や並列処理の仕組みを用いて、動的にシステム構成を変更することは対象としていなかった。
また、特開２００４−２８０８０９号公報に示すような、モデル駆動プログラミングやモデル駆動アーキテクチャ（ＭＤＡ）は、開発者が論理構造を記述し、モデルからのソースコード生成は自動的に行う仕組みを提供している。これは、Ｗｅｂアプリケーションを構成するコンポーネントやＷｅｂ３層アーキテクチャを対象にしたものであり、Ｗｅｂサーバなどのアプリケーション実行環境や、更に下位レイヤのＯＳレベルでの分散実行を論理モデルから構成したり、制御することはできなかった。
また、特開２００５−３１０１７１号公報には、プログラム生成処理をコンピュータに行わせるためのコンピュータ読み取り可能なプログラムに関して、コンピュータに、Ｗｅｂサービスのインターフェース定義を構成する複数の要素の関連を示す第一要素木に基づいて、前記Ｗｅｂサービスを実行する関数によって処理可能な入出力データと前記Ｗｅｂサービスに関する要求及び応答メッセージに含まれる値のデータ型との変換処理を行う変換プログラムを生成する変換プログラム生成手順と、前記Ｗｅｂサービスに関する要求メッセージを解析するとともに前記応答メッセージを生成する解析プログラムを生成する解析プログラム生成手順とを実行させる。
また、特開２００７−３０５０５１号公報には、ソフトウエア要求仕様書作成支援システムに関して、サーバ７内に、要求仕様書のテンプレートを格納する要求仕様書テンプレートテーブルと、既存の製品システムを雛型として使用するか否かを示すデータを格納する製品システムテーブルと、要求仕様書のデータを格納する要求仕様書データテーブルと、未記入の項目を抽出する処理を行う未記入項目抽出処理部と、要求仕様書に記述すべき内容を入力及び表示する処理を行う要求仕様書入力／表示処理部と、開発システムの機能要求の入力により、当該機能要求に対して記述及び検討すべき非機能要求項目を抽出し、要求仕様書に記述すべき項目として設定する処理を行う機能／非機能対応付け処理部が設けられ、クライアントからサーバにアクセスして要求項目の入力を行うことが開示されている。
一方、特開２００８−３０５０７９号公報には、要求仕様書自動検証方式に関し、クライアントのユーザは要求仕様の記述画面で必要な項目への記述を行って要求仕様をアップロードして要求仕様ファイルに格納することと、実行モデル生成処理部、前記ユーザからの指示により起動し、処理フローにしたがって要求仕様ファイルから実行モデル生成に関する項目データを抽出するとともに、テンプレートファイルから実行モデル生成に必要なテンプレートを参照し、さらに変換辞書ファイルから実行モデル生成に関し変換を要する項目データについて辞書を参照し、実行モデルを自動生成して実行モデルファイルに格納することと検証処理部は、実行モデルファイルから検証処理に必要なデータを抽出するとともに要求仕様ファイルからも必要なデータを抽出して検証を行うことが開示されている。
従来のプログラム生成装置についてのみ着目すれば、特開２００３−３３０７１０号公報では、プログラム生成装置において、所望の処理方式を入力するＸＭＬ処理方式選択部と、該入力された処理方式に基づいて、所定のプログラムを生成するために利用可能な構成部品に関する情報を所定の記憶部から取得するコンポーネント提供部と、該取得された情報の全て或いは一部を表示し、該表示された情報に基づいて、所定のプログラムを生成するための構成部品に関する情報を入力するための制御情報定義部と、該入力された構成部品に関する情報に基づいて所定のプログラムを生成するプログラム生成部とを備えた構成が開示されている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来の技術においては、システム設計時に扱うデータ量増加量や変化の程度を予測できない状況において、即ち、リクエストや処理するデータ量、保管するデータ量が運用中のデータ量が爆発的に増加するような場合においては、性能などのシステム要求を満たすシステムを構築することが困難である。また、前記の状況で実装したシステムにおいて、安定した運用を提供することが困難である。
そこで、本発明は、このような状況に鑑みてなされたものであり、その技術的課題は、システム構築者に対し、システム設計時に扱うデータ量の増加量や変化の程度を予測できない状況においても、性能などのシステム要求を満たすシステムを構築することができるＷｅｂサービス構築方法、装置、及びプログラムを提供することである。
また、本発明のもう一つの技術的課題は、システム運用者に対し、前記の状況で実装したシステムにおいて、安定した運用を提供できるＷｅｂサービス管理方法、装置及びプログラムを提供することである。
【課題を解決するための手段】
【０００４】
上記課題を解決するために、本発明の一態様に係るＷｅｂサービス構築管理方法は、非機能要求に基づいてサービス非機能要求情報を作成するサービス非機能要求記述段階と、前記非機能要求に基づいて組合せ可能な実装機能群の情報を保管する実装機能群保管段階と、前記要求を実現するためのサービス論理モデル情報を作成するサービス論理モデル記述段階と、前記論理モデル情報に基づいて前記論理モデルを実現するとともに、前記実装機能群情報に基づいて前記非機能要求と組合せ可能な実装機能群を備えたプログラム群を生成するプログラム群生成段階と、前記サービス非機能要求情報を保管する非機能要求保管段階と、前記プログラム群を保管するプログラム群保管段階と、前記非機能要求を解釈するとともに前記組合せ可能な実装機能群を選択して前記プログラム群から実行プログラムを構成する実行プログラム構成段階と、前記実行プログラムを実行するサービス実行段階と、を備えることを特徴としている。
また、本発明のもう一つの態様に係るＷｅｂサービス構築管理装置は、非機能要求に基づいてサービス非機能要求情報を作成するサービス非機能要求記述手段と、前記非機能要求に基づいて組合せ可能な実装機能群の情報を保管する実装機能群保管手段と、前記要求を実現するためのサービス論理モデル情報を作成するサービス論理モデル記述手段と、前記論理モデル情報に基づいて前記論理モデルを実現するとともに、前記実装機能群情報に基づいて前記非機能要求と組合せ可能な実装機能群を備えたプログラム群を生成するプログラム群生成手段と、前記サービス非機能要求情報を保管する非機能要求保管手段と、前記プログラム群を保管するプログラム群保管手段と、前記非機能要求を解釈するとともに前記組合せ可能な実装機能群を選択して前記プログラム群から実行プログラムを構成する実行プログラム構成手段と、前記実行プログラムを実行するサービス実行手段と、を備えることを特徴とする。
さらに、本発明の他の態様に係るＷｅｂサービス構築管理プログラムは、コンピュータを、非機能要求に基づいてサービス非機能要求情報を作成するサービス非機能要求記述手段と、前記非機能要求に基づいて組合せ可能な実装機能群の情報を保管する実装機能群保管手段と、前記要求を実現するためのサービス論理モデル情報を作成するサービス論理モデル記述手段と、前記論理モデル情報に基づいて前記論理モデルを実現するとともに、前記実装機能群情報に基づいて前記非機能要求と組合せ可能な実装機能群を備えたプログラム群を生成するプログラム群生成手段と、前記サービス非機能要求情報を保管する非機能要求保管手段と、前記プログラム群を保管するプログラム群保管手段と、前記非機能要求を解釈するとともに前記組合せ可能な実装機能群を選択して前記プログラム群から実行プログラムを構成する実行プログラム構成手段と、前記実行プログラムを実行するサービス実行手段として機能させることを特徴とする。
【発明の効果】
【０００５】
本発明によれば、システム構築者に対し、システム設計時に扱うデータ量の増加量や変化の程度を予測できない状況においても、性能などのシステム要求を満たすシステムを構築することができるＷｅｂサービス構築方法、装置、及びプログラムを提供することができる。
また、本発明によれば、システム運用者に対し、前記の状況で実装したシステムにおいて、安定した運用を提供できるＷｅｂサービス管理方法、装置及びプログラムを提供することができる。
【図面の簡単な説明】
【０００６】
図１は、本発明の一実施形態であるＷｅｂサービス構築管理装置１００の機能ブロック図である。
図２は、サービス非機能要求リストの一例を示す図である。
図３は、サービス非機能要求情報の一例を示す図である。
図４は、サービス論理モデル記述部の一例を示す図である。
図５は、Ｗｅｂサービス構築管理装置１００の動作を説明するフローチャートである。
図６は、本発明の一実施形態であるＷｅｂサービス構築管理装置３００の機能ブロック図である。
図７は、Ｗｅｂサービス構築管理装置３００の動作を説明するフローチャートである。
【発明を実施するための最良の形態】
【０００７】
本発明について更に、具体的に説明する。
本発明のＷｅｂサービス構築管理装置は、Ｗｅｂサービスシステムに対するリクエストや処理するデータ量、保管するデータ量が運用中に爆発的に増えるような場面を想定している。このような状況は、最近のクラウドコンピューティングが必要とされる背景で、運用中に処理する計算機ノードを増やしたり、ストレージを変えたりするものである。
本発明では、複数のサーバを接続して構成されるサーバのクラスタリングと異なり、１台のサーバにおいて、アプリケーションサーバのレイヤ、データベースレイヤ、ストレージレイヤ、仮想マシンレイヤ（ＣＰＵコア数割り当て）などシステムスタックの垂直方向で生じる構成を有する。
また、本発明のようなＷｅｂサービス構築管理システムを構築する際、設計時に、可用性や性能、セキュリティなどの非機能要求として、例えば、単位時間当たりの処理件数といった性能要件を記述する。
さらに、本発明では、１台のサーバ構成の場合、ＣＰＵ割り当てを変えた場合、分散ストレージを使う場合など、システム構成変更可能な範囲で、各システム構成にあったプログラムを生成する構成を有するものである。
なお、本発明に用いられるハードウエア資源としては、互いにデータバスラインを介して接続された、演算装置及び制御装置をなすＣＰＵ、ＲＡＭ等のメインメモリ、ＨＤＤ等などの補助記憶装置、入力装置、表示装置、インターフェース装置を備えたコンピュータ装置であり、電気通信回線を介してインターネット等に接続されたものであるならば、どのようなものであっても使用することができる。
それでは、本発明の実施の形態について図面を参照しながら説明する。
図１は本発明の一実施の形態によるＷｅｂサービス構築管理装置１００の概略構成を示すブロック図である。図２はサービス非機能要求リストの一例を示す図である。図３はサービス非機能要求情報の一例を示す図である。図４はサービス論理モデル記述部の一例を示す図である。
図１を参照すると、Ｗｅｂサービス構築管理装置１００は、サービス設計部１１０と、サービス実行部１２０とを備えている。
サービス設計部１１０は、サービス非機能要求記述部１１１と、サービス論理モデル記述部１１２と、プログラム群生成部１１３とを有している。
サービス非機能要求記述部１１１は、サービス設計者が図２に示すサービス非機能要求リストに、個々の非機能要求項目に対する要求レベル値を入力するとともに、図３に示すような構造化されたサービス非機能要求情報に変換するために設けられている。
図４に示すように、サービス論理モデル記述部１１２は、リクエストを受け付けるリクエスト受付部２２０と、指定ファイル群の処理を行う指定ファイル群の処理部２２１と、処理結果の再処理を行う処理結果の再処理部２２２とを備え、サービス設計者がＷｅｂサーバへのリクエストやサーバ内での処理の流れを記述するために構成されている。また、サービス論理モデル記述部１１２では、サービス論理モデル情報２２０が作成され、プログラム群生成部１１３へ入力される情報となる。
プログラム群生成部１１３は、サービス論理モデル記述部１１２で記述されたサービス論理モデル情報（後述）と実装機能群保管部１２９（後述）に保管された実装機能群情報を元に、論理モデルに対する実装としてＷｅｂアプリケーションのソースコードを生成する。
このとき、ソースコードは、Ｗｅｂアプリケーションの制御レベル、Ｗｅｂアプリケーションサーバの制御レベル、Ｗｅｂアプリケーションサーバを動作させるＯＳの制御レベルなど、ＯＳＩネットワークレイヤに沿う複数のソースコードからなる。
また、サービス実行部１２０は、非機能要求保管部１２１と、プログラム群保管部１２２と、実行プログラム構成部１２３と、実行プログラム構成部１２３で構成された複数の構成プログラム１２４と、夫々の構成プログラム１２４を実行するサービス実行エンジン１２５と、実装機能群保管部１２９を有している。
非機能要求保管部１２１は、サービス設計部１１０のサービス非機能要求記述部１１１から作製された非機能要求情報２１０を保管する。
実装機能群保管部１２９は、サービス非機能要求に対して組み合わせ可能な実装機能群の情報を保管する。
プログラム群保管部１２２は、プログラム群生成部１１３で生成されたプログラムを保管する。
実行プログラム構成部１２３は、Ｗｅｂサービス実行時に、非機能要求保管部１２１に保管されたサービス非機能要求情報、およびプログラム群保管部１２２に保管されたプログラム群、およびサービス実行部１２０を動作させる計算機から得られるＣＰＵ利用率・ネットワーク帯域占有率・ファイルＩＯ頻度などのシステム負荷情報を用い夫々の構成プログラム１２４を決定すると共に、サービス非機能要求を実行する際に組合せ可能な実装機能群、例えば、サービス実行エンジンに格納されている各エンジンを選択し決定する。
サービス実行エンジン１２５は、Ｗｅｂアプリケーションを実行するＷｅｂＡＰ制御エンジン１２６、データベースやファイルストレージを管理するＤＢ／ストレージ制御エンジン１２７、およびＯＳの仮想マシンを制御する仮想マシン制御エンジン１２８などを備えている。
サービス実行部１２０内に配置された構成プログラム１２４は、対応するＷｅｂＡＰ制御エンジン１２６、ＤＢ／ストレージ制御エンジン１２７、仮想マシン制御エンジン１２８などによって実行される。
このような構成のＷｅｂサービス構築管理装置１００において、システム設計時に扱うデータ量増加量や変化の程度を予測できない状況において、性能などのシステム要求を満たすシステムを構築することが可能になる。
また、前記の状況で実装したシステムにおいて、安定した運用を可能にする。
次に、Ｗｅｂサービス構築・管理装置１００の動作について、図５のフローチャートを用いて説明する。
図５はＷｅｂサービス構築・管理処理フローを示す図である。図５を参照すると、サービス設計者は、サービス利用者の要求分析時に、サービス非機能要求記述部１１１で、図２に示すサービス非機能要求リストに、個々の非機能要求項目に対する要求レベル値を入力する（ステップＳ１１１）。この情報は、図３に示す構造化されたサービス非機能要求情報に変換し（ステップＳ１１２）、非機能要求保管部１２１に保管する（ステップＳ１１３）。
一方、要求分析時に、ステップＳ１１１と並行して、組合せ可能な実装機能群を、実装機能群保管部１２９に保管する（ステップＳ１２１）。
次に、サービス設計者は、Ｗｅｂサービスの概要設計として、図４に示すようなサービス論理モデル記述部１１２にＷｅｂサーバへのリクエストやサーバ内での処理の流れを記述する（ステップＳ１１４）。プログラム群生成部１１３は、サービス論理モデル記述部１１２で記述されたサービス論理モデル情報２１０と実装機能群保管部１２９に保管された組合せ可能な実装機能群を元に、論理モデルに対する実装としてＷｅｂアプリケーションのソースコードを生成する（ステップＳ１１５）。このとき、Ｗｅｂアプリケーションの制御レベル、Ｗｅｂアプリケーションサーバの制御レベル、Ｗｅｂアプリケーションサーバを動作させるＯＳの制御レベルなど、ＯＳＩネットワークレイヤに沿って、複数のソースコードが生成される（ステップＳ１１５）。生成されたプログラムはプログラム群保管部１２２に保管される（ステップＳ１１６）。
Ｗｅｂサービス実行時に、実行プログラム構成部１２３は、非機能要求保管部１２１に保管されたサービス非機能要求情報、およびプログラム群保管部１２２に保管されたプログラム群や、ＷｅｂＡＰ制御エンジン１２６、ＤＢ／ストレージ制御エンジン１２７、仮想マシン制御エンジン１２８などを含む実装機能群保管部１２９に保管された組合せ可能な実装機能群およびサービス実行部１２０を動作させる計算機から得られるＣＰＵ利用率・ネットワーク帯域占有率・ファイルＩＯ頻度などのシステム負荷情報を用いて、構成プログラム１２４を決定する（ステップ１１６）。更に、これらの構成プログラムをサービス実行部１２０に配置する（ステップ１１７）。
これらの配置された構成プログラムは、ＷｅｂＡＰ制御エンジン１２６、ＤＢ／ストレージ制御エンジン１２７、仮想マシン制御エンジン１２８などによって実行される（ステップ１１８）。
このような構成のＷｅｂサービス構築管理装置１００において、システム設計時に扱うデータ量増加量や変化の程度を予測できない状況において、性能などのシステム要求を満たすシステムを構築することが可能になるＷｅｂサービス構築・管理装置を提供することができる。
また、前記の状況で実装したシステムにおいて、安定した運用を可能にするＷｅｂサービス構築・管理装置を提供することができる。
また、本発明の実施の形態によれば、当該Ｗｅｂサービス構築管理方法は、非機能要求を満たすプログラムやストレージや仮想マシンの制御コードを自動生成する機能を有することで、論理設計時に物理的な構造の考慮を必要としないので、サービス設計者は、Ｗｅｂサービスの論理設計に専念できるＷｅｂサービス管理方法、装置及びプログラムを提供することができる。
また、本発明の実施の形態によれば、Ｗｅｂサービス設計時にＷｅｂアプリケーションレイヤからストレージレイヤや仮想マシンレイヤまでの制御プログラムを予め生成しておくことで、Ｗｅｂサービス実行時に実行プログラムの構成を複数のレイヤで変更できるので、サービス運用時に、急激なデータの増減に対して柔軟に対応できるＷｅｂサービス管理方法、装置及びプログラムを提供することができる。
特に、本発明の実施の形態によれば、ＳａａＳ、ＩａａＳなどのクラウドサービスを提供するプロバイダは、Ｗｅｂサービス機能レイヤ、Ｗｅｂサービス基盤レイヤ、オペレーティングシステムレイヤのサービス機能を提供しているが、前記プロバイダは、ユーザの非機能要求に合わせて、ＳａａＳ、ＰａａＳ、ＩａａＳレイヤのサービスを組み合わせて、スケール性の高いサービス基盤を提供することが可能となる。また、前記のサービス基盤が提供されると、Ｗｅｂサービスの設計者・実装者は、サービス基盤の考慮は不要となり、業務ロジックのみの開発に専念することが可能となる。
【実施例１】
【０００８】
次に、本発明の実施例１について、図１にさらに、図３を用いて、詳細に説明する。
本発明の実施例においては、Ｗｅｂ上のニュースサイトや、ブログなどの書き込み情報を収集し、消費者のトレンド分析を行うシステム開発を想定する。
このＷｅｂアプリケーションの非機能要件として、レスポンス性能は、応答時間が３秒以内とし、レスポンス遵守率を９５％とする。
要求分析時において、これらの要求は、図１に示すサービス非機能要求記述部１１１に記載されたサービス非機能要求情報２１０を非機能要求保管部１２１に保管する。このとき、性能項目のレスポンス遵守率をレスポンス遵守率９５％に対応するレベル４に設定する。
次に、Ｗｅｂサービス設計する。Ｗｅｂアプリケーションは、予め登録された複数のニュースサイトやブログ情報を定期的に収集し、それぞれファイルに蓄積するものとする。
Ｗｅｂアプリケーションは、ユーザからのリクエストを受け付け、サービス論理モデル構成要素２２１において、指定ファイル群から特定文字列の検索およびカウント処理を、サービス論理モデル構成要素２２２において、前記カウント結果の集計処理を行うものとする。前記の処理を、サービス論理モデル記述部１１２に記述する。
プログラム群生成部１１３は、サービス論理モデル情報２２０の各構成要素に対し、アプリケーションレベルとして、例えば、Ｊａｖａ（登録商標）プログラムが実行可能なアプリケーションサーバを実行基盤に用いる場合には、Ｊａｖａクラスのソースコードを生成する。また、データベースとして、リレーショナルデータベースまたはキー・バリュー型データベース実装にアクセスするためのソースコードを生成する。
また、同様に、ストレージレベルとして分散ストレージの制御ソースコードや、ＯＳ仮想マシンの追加・削除などを制御するソースコードを生成する。これらのソースコード群をプログラム保管部１２２に保管する。
Ｗｅｂサービスの運用時において、実行プログラム構成部１２３は、非機能要求保管部１２１に保管されたサービス非機能情報２１０、プログラム保管部１２２に保管されたプログラム、およびサービス実行部１２０を動作させる計算機から得られるＣＰＵ利用率・ネットワーク帯域占有率・ファイルＩＯ頻度などのシステム負荷情報を用いて、サービス非機能情報を満たすように構成プログラムを決定する。
例えば、Ｗｅｂサービス実行環境のＣＰＵがシングルコア・マルチコアの違いによって、アプリケーションレベルのプログラム実行単位の並列度を変更するため、プログラムインスタンスの数を変更するプログラムをＷｅｂＡＰ制御エンジンに登録する。また、ファイルＩＯの負荷が高い場合には、分散ストレージを制御するプログラムをＤＢ／ストレージ制御エンジンに登録する。
また、ＯＳ自体の数を増やして、スケールアウトさせる場合には、仮想マシン制御のプログラムを仮想マシン制御エンジン１２８に登録する。サービス実行エンジン１２５は、これらの登録されたプログラムを実行する。
【実施例２】
【０００９】
次に本発明の実施例２であるＷｅｂサービス構築管理装置３００について説明する。上述したＷｅｂサービス構築管理装置１００の構成に加えて、Ｗｅｂサービス構築管理装置３００のサース実行部３０１は、構成プログラム１２４及びサービス実行エンジン１２５からなるサービス部３０２を監視する監視部３０３を備える。これ以外の各部については既に説明したＷｅｂサービス構築管理装置１００と同様であるので説明を省略する。
監視部３０３は、サービス実行部３０２を動作させる計算機から得られるＣＰＵ利用率・ネットワーク帯域占有率・ファイルＩＯ頻度などのシステム負荷情報を定期的に取得し、予め定めた上限値及び下限値と比較する。システム負荷が上限値を上回る或いは下限値を下回ると、実行プログラム構成部３０４に対し、実行プログラムの再構成を要求する。
構成プログラム１２４は、構成プログラム１２４ａ、１２４ｂ、１２４ｃからなる。構成プログラム１２４ａ、１２４ｂ、１２４ｃは階層構造を有する。構成プログラム１２４ｃの上で構成プログラム１２４ｂは動作し、更に構成プログラム１２４ｂの上で構成プログラム１２４ａは動作する。
構成プログラム１２４ｃは仮想マシン制御エンジン１２８上で仮想ＯＳとして動作するオペレーティングシステムであり、具体的には、ＵＮＩＸ、ＬＩＮＵＸ、マイクロソフト社のＷｉｎｄｏｗｓ等である。
構成プログラム１２４ｂは、仮想ＯＳ（構成プログラム１２４ｃ）上で動作するアプリケーションプログラムであり、ＤＢ／ストレージ制御エンジン１２７を介してＷｅｂサービス構築管理装置３００がアクセス可能な物理ドライブ装置にアクセスする。構成プログラム１２４ｂは具体的にはＷｅｂサーバプログラムであり、例えばＡｐａｃｈｅ  ＨＴＴＰ  Ｓｅｒｖｅｒやマイクロソフト社のＩＩＳ（Ｉｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｅｒ）である。
構成プログラム１２４ａはアプリケーションプログラム（構成プログラム１２４ｂ）と連携して動作するＷｅｂアプリケーションであり、その実行環境であるＷｅｂＡＰ制御エンジン１２６にて実行される。具体的には、構成プログラム１２４ａは、例えばＰＨＰ：Ｈｙｐｅｒｔｅｘｔ  ＰｒｏｃｅｓｓｏｒやＰｅｒｌ等のコンピュータ言語で記述されたアプリケーションプログラムであり、ＷｅｂＡＰ制御エンジン１２６は、コンピュータ言語で記述されたアプリケーションプログラムを動作させるためのランタイムや、セキュリティ、リソースの配分その他環境の設定を含む。
次に図７を参照してＷｅｂサービス構築管理装置３００の動作について説明する。ステップＳ１１１からステップＳ１１４までについては既に説明したものと同様である。
ステップＳ１１５において、プログラム群生成部１１３は、ＯＳＩネットワークレイヤに沿って複数のソースコードを生成する。サービス実行部３０１は、Ｗｅｂアプリケーションの制御レベルに対応する複数のＷｅｂＡＰ制御エンジン１２６を備えている。プログラム群生成部１１３は、これら複数のＷｅｂＡＰ制御エンジンのそれぞれについて、そのＷｅｂＡＰ制御エンジン上で実行されたときにサービス論理モデル記述部１１２で記述したサービス論理モデルを実現するようなＷｅｂアプリケ−ションプログラム、即ち、構成プログラム１２４ａのソースコードを生成する。その結果、プログラム群生成部１１３は、複数のＷｅｂＡＰ制御エンジンに対応した、複数のソースコードを生成する。尚、ひとつのＷｅｂＡＰ制御エンジンに対して複数のソースコードを生成することとしてもよい。例えば、同一のＷｅｂＡＰ制御エンジンに対して、同時にアクセス可能なクライアント数のみが異なる複数のソースコードを生成することとしてもよい。
また、サービス実行部３０１は、Ｗｅｂアプリケーションサーバの制御レベルに対応するＤＢ／ストレージ制御エンジン１２７を複数備え、プログラム群生成部１１３は、これら複数のＤＢ／ストレージ制御エンジン１２７それぞれにおいて構成プログラム１２４ｂとして機能するプログラムのソースコードを生成する。その結果、プログラム群生成部１１３は、複数のＤＢ／ストレージ制御エンジン１２７に対応した、複数のソースコードを生成する。
また、サービス実行部３０１は、Ｗｅｂアプリケーションサーバを動作させるＯＳの制御レベルに対応する仮想マシン制御エンジン１２８を複数備え、プログラム群生成部１１３は、これら複数の仮想マシン制御エンジン１２８それぞれにおいて構成プログラム１２４ｃとして機能するプログラムのソースコードを生成する。その結果、プログラム群生成部１１３は、複数の仮想マシン制御エンジン１２８に対応した、複数のソースコードを生成する。
このように、同一のサービス論理モデルに対し、制御エンジン毎に複数のソースコードを生成し、プログラム群保管部１２２に保管した上で、ステップＳ１１６において、実行プログラム構成部３０４は、非機能要求保管部１２１、プログラム群保管部１２２、実装機能群保管部１２９に保管されている各データ、及び、監視部３０３にて取得した負荷情報に基づいて、構成プログラム１２４ａ、１２４ｂ、１２４ｃを構成する。
サービス実行部３０１は、ひとつのＷｅｂサービスを提供する際、３つの制御レベルに対応する３つの制御エンジンを用いる。ここで、Ｗｅｂサービスを提供するために利用可能な制御エンジンとして、各制御レベル毎にサービス実行部３０１が２種類の制御エンジンを備えているものとし、プログラム群保管部１２２にはひとつの制御エンジンにつきひとつのソースコードが保管されているものとする。このとき、３つの制御レベルで利用する制御エンジンの組み合わせは２×２×２＝８通りである。しかし、例えばあるＷｅｂサーバは特定のＯＳ上でしか動かないといった組み合わせ上の制約がある。更に、ひとつの制御エンジンにつき複数のソースコードがプログラム群保管部１２２に保管されている場合には、ソースコード間の組み合わせの制約が生じることも考えられる。こうした組み合わせ上の制約が実装機能群保管部１２９に保管されている。
実行プログラム構成部３０４は、実装機能群保管部１２９に保管されている制御エンジン等の組み合わせ上の制約、非機能要求保管部１２１に保管されている非機能要求情報に基づく制約、監視部３０３にて取得した負荷情報に基づく、Ｗｅｂサービスが利用可能なハードウェアリソース上の制約を満たすように、利用する制御エンジン、ソースコードを選択し、選択したソースコードから構成プログラム１２４ａ、１２４ｂ、１２４ｃを生成する。
ステップＳ１１７にて、これら構成したプログラムを、対応するＷｅｂＡＰ制御エンジン１２６、ＤＢ／ストレージ制御エンジン１２７、仮想マシン制御エンジン１２８上で実行可能となるように配置する。ステップＳ１１８にて、配置した各構成プログラムを対応する制御エンジンにて実行し、Ｗｅｂサービスの提供を開始する。
Ｗｅｂサービスの提供開始後も監視部３０３はサービス部３０２のシステム負荷の監視を続ける（ステップＳ１３１）。システム負荷が所定の上限値を上回る（ステップＳ１３２）と、監視部３０３は実行プログラム構成部３０４に対して実行プログラムの再構成を要求し、これに応じて実行プログラム構成部３０４はステップＳ１１６を再度実行する。
例えば、サービス部３０２が提供しているＷｅｂサービスの利用者が増加し、同時アクセス可能なクライアント数の制限によるアクセス拒否の発生頻度が所定数を越えることを監視部３０３が検出したとき、実行プログラム構成部３０４は、使用するＷｅｂＡＰ制御エンジン１２６はそのままに、対応する構成プログラム１２４ａを変更して、Ｗｅｂサービスが同時に受け付け可能なクライアントの数を増減する。
或いは、Ｗｅｂサービスの利用者数が増加した結果、そのＷｅｂサービスのデータベース用として割り当てられた記憶領域の空き容量が所定値を下回ったことを監視部３０３が検出すると、実行プログラム構成部３０４は、ＤＢ／ストレージ制御エンジン１２７、構成プログラム１２４ｂを変更することにより、記憶領域の割り当ての変更や、外部記憶装置の変更、追加を行なう。
或いは、ＣＰＵの使用率が所定値を越えたことを監視部３０３が検出すると、実行プログラム構成部３０４は、構成プログラム１２４ｃ、即ち仮想ＯＳを、システム負荷が低い別のＯＳに変更し、これに伴い、実装機能群保管部１２９に保管されている、ＷｅｂＡＰ制御エンジン１２６、ＤＢ／ストレージ制御エンジン１２７、仮想マシン制御エンジン１２８の可能な組み合わせに基づいて、ＷｅｂＡＰ制御エンジン１２６、ＤＢ／ストレージ制御エンジン１２７を変更し、更にこれらに対応して構成プログラム１２４ａ、１２４ｂを変更する。
また、ここまでの説明では、同一のサーバハードウェア上でひとつのＷｅｂサービスを提供することを前提としていたが、同一のサーバハードウェア上で複数のサービス部３０２を同時に提供可能であることは当業者には明らかであろう。同時に提供中の複数のＷｅｂサービスのいずれかの負荷が所定値を越えたことを監視部３０３が検出すると、実行プログラム構成部３０４は、そのＷｅｂサービスに関する実行プログラムの再構成を行なうだけではなく、同時に提供中の他のＷｅｂサービスの実行プログラムについても再構成することとしてもよい。これにより、Ｗｅｂサービスの処理負荷に応じて、Ｗｅｂサーバのハードウェアリソースの各Ｗｅｂサービスへの割り当てを最適化することができる。
尚、ステップＳ１３２において、ここではシステム負荷と上限値とを比較し、システム負荷が上限値を越えるときに実行プログラムの再構成を行なったが、上限値の代わりに下限値を設定し、システム負荷が下限値を下回るときに実行プログラムの再構成を行なうこととしてもよい。
【産業上の利用可能性】
【００１０】
以上の説明の通り、本発明に係るＷｅｂサービス構築管理方法、装置およびプログラムは、ＳａａＳ、ＰａａＳ、ＩａａＳなどのクラウドサービスを提供するプロバイダのＷｅｂサービス機能レイヤ、Ｗｅｂサービス基盤レイヤ、オペレーティングシステムレイヤのサービス機能の提供に適用される。
この出願は、２０１０年２月５日に出願された日本出願特願第２０１０−０２４４５３号を基礎とする優先権を主張し、その開示のすべてをここに取り込むものである。
【図１】
2011096314.tif 000003
【図２】
2011096314.tif 000004
【図３】
2011096314.tif 000005
【図４】
2011096314.tif 000006
【図５】
2011096314.tif 000007
【図６】
2011096314.tif 000008
【図７】
2011096314.tif 000009
【国際調査報告】
2011096314.tif 000010
2011096314.tif 000011
2011096314.tif 000012
2011096314.tif 000013