(57)【要約】  複数のサービス提供者ごとのクライアント装置(１０１)からのリクエストに対応してサービスをサービス実行手段(１０５〜１０７)が実行する。複数のクライアント装置(１０１)からのリクエストを受信してサービス実行手段(１０５〜１０７)に負荷分散手段(１０４)が分配する。それぞれのサービス実行手段(１０５〜１０７)のサービス実行状況をサービス実行監視部(１２０)が監視する。監視されるサービス実行状況に対応してサービスをアクセス制御手段(１０３)が制御する。これにより、複数のサービス提供者で共有されるＳａａＳ／ＡＳＰ型のサービスなどにおいて、異なるサービス提供者のサービス間での性能などの干渉が起こりにくいサービス提供システムを提供する。
2011104999.tif 000002
【特許請求の範囲】
【請求項１】
複数のサービス提供者ごとのクライアント装置からのリクエストに対応してサービスを実行するサービス実行手段と、
複数の前記クライアント装置からの前記リクエストを受信して前記サービス実行手段に分配する負荷分散手段と、
それぞれの前記サービス実行手段のサービス実行状況を監視するサービス実行監視手段と、
監視される前記サービス実行状況に対応して前記サービスを制御するアクセス制御手段と、
を有するサービス提供システム。
【請求項２】
前記サービス実行手段は、前記リクエストに対応して処理内容は同じで内部データが前記サービス提供者ごとに異なるサービスアプリケーションの実行インスタンスを生成し、
前記サービス実行監視手段は、生成されて実行されている前記サービスアプリケーションの実行インスタンスの実行状況を対応する前記サービス提供者ごとに整理して前記サービスアプリケーションの実行を制御し、
前記アクセス制御手段は、前記サービス実行監視手段からの操作で特定の前記サービス提供者が要求する前記サービスへの前記リクエストを制御する請求項１に記載のサービス提供システム。
【請求項３】
前記サービス実行監視手段は、
複数の前記サービス実行手段での複数の前記サービス処理について前記サービス提供者ごとの処理状況を集計して管理する処理状況管理手段と、
前記リクエストごとに実行されるサービス処理を、どの前記サービス提供者のものであるかとともに保持する関係管理手段と、
前記クライアント装置からの前記リクエストの到着時に、どの前記サービス提供者の前記サービス処理を要求しているかを識別する提供者識別手段と、
前記サービスアプリケーションの複数の箇所に対してアクセスすることで前記リクエストに対する前記サービスアプリケーションの処理状況を監視して状況に対応して処理を制御する処理監視制御手段と、
を有する請求項１または２に記載のサービス提供システム。
【請求項４】
前記処理状況管理手段は、前記処理監視制御手段から受信する前記サービス提供者ごとの処理状況を記録して前記サービス提供者ごとに実行インスタンスが一定数以上異常状態であると、前記処理監視制御手段に該当する前記サービス提供者の実行インスタンスを強制終了させる請求項３に記載のサービス提供システム。
【請求項５】
前記提供者識別手段は、前記サービスアプリケーションに対する前記リクエストを解析し、どの前記サービス提供者向けの前記サービスとして動作したのかを識別し、
前記サービスアプリケーションの処理とは独立に定義され、前記サービスアプリケーションに対してプラグインされる形で目的の処理を実行する請求項３または４に記載のサービス提供システム。
【請求項６】
前記提供者識別手段は、外部からの操作によって特定の前記サービス提供者の前記サービスの実行に割り込んで制御する請求項３ないし５の何れか一項に記載のサービス提供システム。
【請求項７】
前記処理監視制御手段は、前記サービスアプリケーションの任意の箇所にプラグインされ、プラグインされた箇所の各種状況を監視する請求項３ないし６の何れか一項に記載のサービス提供システム。
【請求項８】
前記処理監視制御手段は、前記プラグインされた箇所で処理を制御する請求項７に記載のサービス提供システム。
【請求項９】
複数のサービス提供者ごとのクライアント装置からのリクエストに対応してサービスを実行するサービス実行手段と、
特定のサービス提供者のサービスのみを処理可能な専用型サービス実行手段と、
複数の前記クライアント装置からの前記リクエストを受信して前記サービス実行手段に分配する負荷分散手段と、
それぞれの前記サービス実行手段のサービス実行状況を監視するサービス実行監視手段と、
監視される前記サービス実行状況に対応して前記サービスを制御するアクセス制御手段と、
前記アクセス制御手段は、前記サービス実行監視手段からの操作で、特定の負荷の高い前記サービス提供者向けの前記リクエストのみを、その特定の前記サービス提供者向け処理専用のサービス提供システムで実行させるよう前記負荷分散手段を設定するサービス提供システム。
【請求項１０】
複数のサービス提供者ごとのクライアント装置からのリクエストに対応してサービスを実行するサービス実行手段と、
複数の前記クライアント装置からの前記リクエストを受信して前記サービス実行手段に分配する負荷分散手段と、
それぞれの前記サービス実行手段のサービス実行状況を監視するサービス実行監視手段と、
監視される前記サービス実行状況に対応して前記サービスを制御するアクセス制御手段と、
サービス提供者ごとの課金情報を管理する課金管理手段と、
定期的に前記サービス提供者ごとの負荷情報を前記アクセス制御手段に通知する前記サービス実行監視手段と、を有し、
前記アクセス制御手段は、通知された負荷情報に基づき、高負荷時に前記課金管理手段から取得した課金情報をもとに課金割合が低いのに負荷が高い前記サービス提供者の前記リクエストをブロックするサービス提供システム。
【請求項１１】
複数のサービス提供者ごとのクライアント装置と通信するサービス提供システムのコンピュータプログラムであって、
前記クライアント装置からのリクエストに対応してサービスを実行するサービス実行処理と、
複数の前記クライアント装置からの前記リクエストを受信して前記サービス実行処理に分配する負荷分散処理と、
それぞれの前記サービス実行処理のサービス実行状況を監視するサービス実行監視処理と、
監視される前記サービス実行状況に対応して前記サービスを制御するアクセス制御処理と、
をサービス提供システムに実行させるコンピュータプログラム。
【請求項１２】
複数のサービス提供者ごとのクライアント装置と通信するサービス提供システムのコンピュータプログラムであって、
複数の前記サービス提供者ごとの前記クライアント装置からのリクエストに対応してサービスを実行するサービス実行処理と、
特定のサービス提供者のサービスのみを処理可能な専用型サービス実行処理と、
複数の前記クライアント装置からの前記リクエストを受信して前記サービス実行処理に分配する負荷分散処理と、
それぞれの前記サービス実行処理のサービス実行状況を監視するサービス実行監視処理と、
監視される前記サービス実行状況に対応して前記サービスを制御し、前記サービス実行監視処理からの操作で、特定の負荷の高い前記サービス提供者向けの前記リクエストのみを、その特定の前記サービス提供者向け処理専用のサービス提供システムで実行させるよう前記負荷分散処理を設定する前記アクセス制御処理と、
をサービス提供システムに実行させるコンピュータプログラム。
【請求項１３】
複数のサービス提供者ごとのクライアント装置と通信するサービス提供システムのコンピュータプログラムであって、
複数の前記サービス提供者ごとの前記クライアント装置からのリクエストに対応してサービスを実行するサービス実行処理と、
複数の前記クライアント装置からの前記リクエストを受信して前記サービス実行処理に分配する負荷分散処理と、
それぞれの前記サービス実行処理のサービス実行状況を監視するサービス実行監視処理と、
監視される前記サービス実行状況に対応して前記サービスを制御するアクセス制御処理と、
前記サービス提供者ごとの課金情報を管理する課金管理処理と、
定期的に前記サービス提供者ごとの負荷情報を前記アクセス制御処理に通知する前記サービス実行監視処理と、
通知された負荷情報に基づき、高負荷時に前記課金管理処理から取得した課金情報をもとに課金割合が低いのに負荷が高い前記サービス提供者の前記リクエストをブロックする前記アクセス制御処理と、
をサービス提供システムに実行させるコンピュータプログラム。
【請求項１４】
複数のサービス提供者ごとのクライアント装置と通信するサービス提供システムのデータ処理方法であって、
前記クライアント装置からのリクエストに対応してサービスを実行するサービス実行動作と、
複数の前記クライアント装置からの前記リクエストを受信して前記サービス実行処理に分配する負荷分散動作と、
それぞれの前記サービス実行処理のサービス実行状況を監視するサービス実行監視動作と、
監視される前記サービス実行状況に対応して前記サービスを制御するアクセス制御動作と、
を有するデータ処理方法。
【請求項１５】
複数のサービス提供者ごとのクライアント装置と通信するサービス提供システムのデータ処理方法であって、
複数の前記サービス提供者ごとの前記クライアント装置からのリクエストに対応してサービスを実行するサービス実行動作と、
特定のサービス提供者のサービスのみを処理可能な専用型サービス実行動作と、
複数の前記クライアント装置からの前記リクエストを受信して前記サービス実行処理に分配する負荷分散動作と、
それぞれの前記サービス実行処理のサービス実行状況を監視するサービス実行監視動作と、
監視される前記サービス実行状況に対応して前記サービスを制御し、前記サービス実行監視処理からの操作で、特定の負荷の高い前記サービス提供者向けの前記リクエストのみを、その特定の前記サービス提供者向け処理専用のサービス提供システムで実行させるよう前記負荷分散処理を設定する前記アクセス制御動作と、
を有するデータ処理方法。
【請求項１６】
複数のサービス提供者ごとのクライアント装置と通信するサービス提供システムのデータ処理方法であって、
複数の前記サービス提供者ごとの前記クライアント装置からのリクエストに対応してサービスを実行するサービス実行動作と、
複数の前記クライアント装置からの前記リクエストを受信して前記サービス実行処理に分配する負荷分散動作と、
それぞれの前記サービス実行処理のサービス実行状況を監視するサービス実行監視動作と、
監視される前記サービス実行状況に対応して前記サービスを制御するアクセス制御動作と、
サービス提供者ごとの課金情報を管理する課金管理動作と、
定期的に前記サービス提供者ごとの負荷情報を前記アクセス制御処理に通知する前記サービス実行監視動作と、
通知された負荷情報に基づき、高負荷時に前記課金管理処理から取得した課金情報をもとに課金割合が低いのに負荷が高い前記サービス提供者の前記リクエストをブロックする前記アクセス制御動作と、
を有するデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のサービス提供者ごとのクライアント装置のリクエストに対応してサービスを提供するサービス提供システム、そのコンピュータプログラムおよびデータ処理方法、に関する。
【背景技術】
【０００２】
サービス提供の仕組みを図１３に示す。サービス提供の仕組みは、顧客が操作するクライアント装置１０１と、リクエストに対応してサービスを実行しレスポンスを返すサービス提供システム２１０と、から構成される。【０００３】
サービス提供システム２１０は、負荷分散管理部１０４、様々なサービス提供者のサービスアプリケーション１１５〜１１７が、それぞれ配備されているサービス実行部１０５〜１０７から構成されている（非特許文献１）。【０００４】
サービス実行部１０５〜１０７が複数あるのは、サービス提供の負荷に対してスケールアウトされた構成を考慮しているからである。また、負荷分散管理部１０４、サービス実行部１０５〜１０７は、それぞれ独立の装置として実装される場合もあり、ソフトウェアとして実装され、一つの装置内で複数の構成部が動作する場合もある。【０００５】
このような構成を有する従来のサービス提供システム２１０は、つぎのように動作する。すなわち、サービス利用者は自らのクライアント装置１０１からサービスアプリケーションを利用するためにサービス提供システム２１０へリクエストを送付する。【０００６】
サービス提供システム２１０内の負荷分散管理部１０４は、多くのクライアント装置１０１からのリクエストを受け付け、適切なサービス実行部１０５〜１０７へ処理を割り振る。【０００７】
上述の技術を、例えば、複数のサービス提供者で共有してＳａａＳ(Software as a Service)／ＡＳＰ(Application Service Provider)型サービスとして顧客に提供する場合、特定サービス提供者向けのリクエストが増加することによって、他のサービス提供者へのサービスに支障をきたすことが予想される。【０００８】
こうした問題への対策としては、あるサービス提供者向けのリクエストを負荷分散管理部１０４が受け付けているコネクション数が設定された値よりも多くなった場合、そのサービス提供者向けの新規リクエストをサービス実行部１０５〜１０７へ割り振らず、一時的に拒否・遮断・保留することによって、他のサービス提供者のサービス実行に影響を与えないようにすることができる。【０００９】
また、ショッピングサービスシステムなど、情報通信サービスシステムが過負荷状態になったとき、サービスを提供するシステムの負荷軽減のためにサービス利用者側装置からのサービス利用要求を規制する提案もある(特許文献１)。【００１０】
その技術では、情報通信サービスを提供する側に負荷に対応してサービス規制を開始、解除する閾値を格納する負荷閾値テーブルと、サービス利用者側でサービス利用要求を発行するか否かを判断するための基準となるサービス規制情報テーブルを設ける。【００１１】
情報通信サービスを提供する側の負荷が高くなり、サービス規制を開始すると判断したときに、サービス要求をしていないサービス利用者側の装置を含めてサービス規制情報を同報配送することによって、サービス利用者側からのサービス利用要求の発行を規制する(図示せず)。【００１２】
さらに、データセンタにおいて、ユーザ企業ごとに夫々独立な計算資源を割り当て、負荷に対応してその割当てを自動的にリアルタイムに変更する提案もある（特許文献２）。【００１３】
その技術では、制御プログラムは、ユーザ企業識別子ごとの計算機割当て制御表を作成し、負荷分散管理部に設定する。ユーザ要求パケット中のＩＰアドレスからユーザ企業識別子を識別する手段を設ける。【００１４】
負荷分散管理部は、ユーザ要求パケットからユーザ企業を識別し、しかるべき計算機群にそれを転送する。さらに、制御プログラムはユーザごとのサービスレベル契約と、計算機の稼動状況モニタ結果を比較、契約条件未達時は割当て計算機を増やす。【００１５】
具体的には、上述のユーザ企業識別子ごとの計算機割当て制御表を変更し、負荷分散管理部に再設定する。さらに制御プログラムは、それに基づく課金情報を変更する(図示せず)。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２００１−０６７３１４号公報
【特許文献２】特開２００２−０２４１９２号公報
【非特許文献】
【００１７】
【非特許文献１】"パケットフローから負荷分散の基本を理解する"＠ＩＴ、［２０１０年０２月０９日検索］インターネット<ＵＲＬ：http://www.atmarkit.co.jp/fnetwork/rensai/lb01/lb01.html>
【発明の概要】
【００１８】
非特許文献１などの技術では、サービス提供者ごとのコネクション数を使ったアクセス制御が一般的だが、負荷分散の方法としては必ずしも適切ではなく、サービス提供者間の処理の干渉が起こりがちである。
【００１９】
その理由は、内部処理による負荷の違いにより、同一コネクション数でもシステムにかかる負荷が大きく異なることがあるためである。リクエストを受け付けた後、バックエンドシステムに非同期で処理を依頼し、コネクション自体は即時終了するタイプのサービスの場合、こうした傾向は顕著であるといえる。
【００２０】
また、特許文献１の技術は、サーバ側の規制情報に対応してクライアント側も連携して要求を送信しないようにすることで規制するものでしかない。負荷上昇に伴いサーバ側でサービス規制を実行するようなシステムは一般的な既存技術である。
【００２１】
さらに、特許文献２の技術では、サービス提供者ごとの独自のサービスを実行するシステムに対する計算機資源の割り当てが前提となる。このため、サービス提供者間で共有されるサービス提供システムには適用が困難である。
【００２２】
同じサービスを複数のサービス提供者で共有するＳａａＳ型の技術では、単純に外部観測しただけでは、サービス提供者ごとの処理内部の負荷状況を知ることは困難である。従って、このような課題を解決することは、特許文献１や特許文献２の技術では困難である。
【００２３】
本発明は上述のような課題に鑑みてなされたものであり、複数のサービス提供者で共有されるＳａａＳ／ＡＳＰ型のサービスなどにおいて、異なるサービス提供者のサービス間での性能などの干渉が起こりにくいサービス提供システム、そのコンピュータプログラムおよびデータ処理方法、を提供するものである。
【００２４】
本発明の第一のサービス提供システムは、複数のサービス提供者ごとのクライアント装置からのリクエストに対応してサービスを実行するサービス実行手段と、複数のクライアント装置からのリクエストを受信してサービス実行手段に分配する負荷分散手段と、それぞれのサービス実行手段のサービス実行状況を監視するサービス実行監視部と、監視されるサービス実行状況に対応してサービスを制御するアクセス制御手段と、を有する。
【００２５】
本発明の第二のサービス提供システムは、複数のサービス提供者ごとのクライアント装置からのリクエストに対応してサービスを実行するサービス実行手段と、特定のサービス提供者のサービスのみを処理可能な専用型サービス実行手段と、複数のクライアント装置からのリクエストを受信してサービス実行手段に分配する負荷分散手段と、それぞれのサービス実行手段のサービス実行状況を監視するサービス実行監視手段と、監視されるサービス実行状況に対応してサービスを制御するアクセス制御手段と、アクセス制御手段は、サービス実行監視手段からの操作で、特定の負荷の高いサービス提供者向けのリクエストのみを、その特定のサービス提供者向け処理専用のサービス提供システムで実行させるよう負荷分散手段を設定する。
【００２６】
本発明の第三のサービス提供システムは、複数のサービス提供者ごとのクライアント装置からのリクエストに対応してサービスを実行するサービス実行手段と、複数のクライアント装置からのリクエストを受信してサービス実行手段に分配する負荷分散手段と、それぞれのサービス実行手段のサービス実行状況を監視するサービス実行監視手段と、監視されるサービス実行状況に対応してサービスを制御するアクセス制御手段と、サービス提供者ごとの課金情報を管理する課金管理手段と、定期的にサービス提供者ごとの負荷情報をアクセス制御手段に通知するサービス実行監視手段と、を有し、アクセス制御手段は、通知された負荷情報に基づき、高負荷時に課金管理手段から取得した課金情報をもとに課金割合が低いのに負荷が高いサービス提供者のリクエストをブロックする。
【００２７】
本発明の第一のコンピュータプログラムは、複数のサービス提供者ごとのクライアント装置と通信するサービス提供システムのコンピュータプログラムであって、クライアント装置からのリクエストに対応してサービスを実行するサービス実行処理と、複数のクライアント装置からのリクエストを受信してサービス実行処理に分配する負荷分散処理と、それぞれのサービス実行処理のサービス実行状況を監視するサービス実行監視処理と、監視されるサービス実行状況に対応してサービスを制御するアクセス制御処理と、をサービス提供システムに実行させる。
【００２８】
本発明の第二のコンピュータプログラムは、複数のサービス提供者ごとのクライアント装置と通信するサービス提供システムのコンピュータプログラムであって、複数のサービス提供者ごとのクライアント装置からのリクエストに対応してサービスを実行するサービス実行処理と、特定のサービス提供者のサービスのみを処理可能な専用型サービス実行処理と、複数のクライアント装置からのリクエストを受信してサービス実行処理に分配する負荷分散処理と、それぞれのサービス実行処理のサービス実行状況を監視するサービス実行監視処理と、監視されるサービス実行状況に対応してサービスを制御し、サービス実行監視処理からの操作で、特定の負荷の高いサービス提供者向けのリクエストのみを、その特定のサービス提供者向け処理専用のサービス提供システムで実行させるよう負荷分散処理を設定するアクセス制御処理と、をサービス提供システムに実行させる。
【００２９】
本発明の第三のコンピュータプログラムは、複数のサービス提供者ごとのクライアント装置と通信するサービス提供システムのコンピュータプログラムであって、複数のサービス提供者ごとのクライアント装置からのリクエストに対応してサービスを実行するサービス実行処理と、複数のクライアント装置からのリクエストを受信してサービス実行処理に分配する負荷分散処理と、それぞれのサービス実行処理のサービス実行状況を監視するサービス実行監視処理と、監視されるサービス実行状況に対応してサービスを制御するアクセス制御処理と、サービス提供者ごとの課金情報を管理する課金管理処理と、定期的にサービス提供者ごとの負荷情報をアクセス制御処理に通知するサービス実行監視処理と、通知された負荷情報に基づき、高負荷時に課金管理処理から取得した課金情報をもとに課金割合が低いのに負荷が高いサービス提供者のリクエストをブロックするアクセス制御処理と、をサービス提供システムに実行させる。
【００３０】
本発明の第一のデータ処理方法は、複数のサービス提供者ごとのクライアント装置と通信するサービス提供システムのデータ処理方法であって、クライアント装置からのリクエストに対応してサービスを実行するサービス実行動作と、複数のクライアント装置からのリクエストを受信してサービス実行処理に分配する負荷分散動作と、それぞれのサービス実行処理のサービス実行状況を監視するサービス実行監視動作と、監視されるサービス実行状況に対応してサービスを制御するアクセス制御動作と、を有する。
【００３１】
本発明の第二のデータ処理方法は、複数のサービス提供者ごとのクライアント装置と通信するサービス提供システムのデータ処理方法であって、複数のサービス提供者ごとのクライアント装置からのリクエストに対応してサービスを実行するサービス実行動作と、特定のサービス提供者のサービスのみを処理可能な専用型サービス実行動作と、複数のクライアント装置からのリクエストを受信してサービス実行処理に分配する負荷分散動作と、それぞれのサービス実行処理のサービス実行状況を監視するサービス実行監視動作と、監視されるサービス実行状況に対応してサービスを制御し、サービス実行監視処理からの操作で、特定の負荷の高いサービス提供者向けのリクエストのみを、その特定のサービス提供者向け処理専用のサービス提供システムで実行させるよう負荷分散処理を設定するアクセス制御動作と、を有する。
【００３２】
本発明の第三のデータ処理方法は、複数のサービス提供者ごとのクライアント装置と通信するサービス提供システムのデータ処理方法であって、複数のサービス提供者ごとのクライアント装置からのリクエストに対応してサービスを実行するサービス実行動作と、複数のクライアント装置からのリクエストを受信してサービス実行処理に分配する負荷分散動作と、それぞれのサービス実行処理のサービス実行状況を監視するサービス実行監視動作と、監視されるサービス実行状況に対応してサービスを制御するアクセス制御動作と、サービス提供者ごとの課金情報を管理する課金管理動作と、定期的にサービス提供者ごとの負荷情報をアクセス制御処理に通知するサービス実行監視動作と、通知された負荷情報に基づき、高負荷時に課金管理処理から取得した課金情報をもとに課金割合が低いのに負荷が高いサービス提供者のリクエストをブロックするアクセス制御動作と、を有する。
【００３３】
なお、本発明の各種の構成要素は、その機能を実現するように形成されていればよく、例えば、所定の機能を発揮する専用のハードウェア、所定の機能がコンピュータプログラムにより付与されたサービス提供システム、コンピュータプログラムによりサービス提供システムに実現された所定の機能、これらの任意の組み合わせ、等として実現することができる。
【００３４】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【００３５】
また、本発明のコンピュータプログラムおよびデータ処理方法は、複数の処理および動作を順番に記載してあるが、その記載の順番は複数の処理および複数の動作を実行する順番を限定するものではない。
【００３６】
このため、本発明のコンピュータプログラムおよびデータ処理方法を実施するときには、その複数の処理および複数の動作の順番は内容的に支障しない範囲で変更することができる。
【００３７】
さらに、本発明のコンピュータプログラムおよびデータ処理方法は、複数の処理および複数の動作が個々に相違するタイミングで実行されることに限定されない。このため、ある処理および動作の実行中に他の処理および動作が発生すること、ある処理および動作の実行タイミングと他の処理および動作の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【００３８】
また、本発明で云うサービス提供システムは、コンピュータプログラムを読み取って対応する処理動作を実行できるように、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、Ｉ／Ｆ（Interface）ユニット、等の汎用デバイスで構築されたハードウェア、所定の処理動作を実行するように構築された専用の論理回路、これらの組み合わせ、等として実施することができる。
【００３９】
なお、本発明でコンピュータプログラムに対応した各種動作をサービス提供システムに実行させることは、各種デバイスをサービス提供システムに動作制御させることなども意味している。
【００４０】
例えば、サービス提供システムに各種データを記憶させることは、サービス提供システムに固定されているＨＤＤ（Hard Disc Drive）等の情報記憶媒体にＣＰＵが各種データを格納すること、サービス提供システムに交換自在に装填されているＣＤ−Ｒ（Compact Disc-Recordable）等の情報記憶媒体にＣＰＵがＣＤドライブで各種データを格納すること、等を許容する。
【００４１】
本発明のサービス提供システムでは、複数のサービス提供者ごとのクライアント装置からのリクエストに対応してサービスをサービス実行手段が実行する。複数のクライアント装置からのリクエストを受信してサービス実行手段に負荷分散手段が分配する。それぞれのサービス実行手段のサービス実行状況をサービス実行監視部が監視する。監視されるサービス実行状況に対応してサービスをアクセス制御手段が制御する。同じサービスを共有するＳａａＳ型などの提供形態では、単純に外部観測しただけではサービス提供者ごとの処理内部の負荷状況を知ることは困難である。しかし、上述のようにサービス実行状況を監視してサービスを制御するので、異なるサービス提供者のサービス間での性能などを干渉しにくくすることができる。
【図面の簡単な説明】
【００４２】
上述した目的、および、その他の目的、特徴および利点は、以下に述べる好適な実施の形態、および、それに付随する以下の図面によって、さらに明らかになる。【００４３】
【図１】本発明の実施の第一の形態のサービス提供システムの論理構造を示す模式的なブロック図である。
【図２】サービス実行監視部の詳細な構成を示すブロック図である。
【図３】サービスアプリケーションにリクエストが到着する際の動作を示すフローチャートである。
【図４】サービスアプリケーション動作中の処理状況の監視動作を示すフローチャートである。
【図５】サービス提供者別アクセス制御部からの監視情報を受信した際のサービス提供者別処理状況管理部の動作を示すフローチャートである。
【図６】サービス提供者別アクセス制御部の動作を示すフローチャートである。
【図７】本発明の実施の第二の形態の監視情報を受信した際のサービス提供者別処理状況管理部の動作を示すフローチャートである。
【図８】本発明の実施の第三の形態のサービス提供システムの論理構造を示す模式的なブロック図である。
【図９】サービス実行監視部の詳細な構成を示すブロック図である。
【図１０】サービス提供者別処理状況管理部が監視情報を受信した際の動作を示すフローチャートである。
【図１１】特定サービス提供者の負荷状況を通知されたサービス提供者別アクセス制御部の動作を示すフローチャートである。
【図１２】特定サービス提供者向けの処理を一時的に制限する通知を受信したサービス実行監視部の動作を示すフローチャートである。
【図１３】一従来例のサービス提供システムの論理構造を示す模式的なブロック図である。
【図１４】本発明の実施の第四の形態のサービス提供システムの論理構造を示す模式的なブロック図である。
【図１５】本発明の実施の第五の形態のサービス提供システムの論理構造を示す模式的なブロック図である。
【図１６】実施の第四の形態のサービス提供者別アクセス制御部の処理動作を示すフローチャートである。
【図１７】実施の第五の形態のサービス提供者別アクセス制御部の処理動作を示すフローチャートである。
【図１８】実施の第五の形態でサービス提供者別アクセス制御部がリクエストを受信した場合の処理動作を示すフローチャートである。
【図１９】本発明の実施の第五の形態のサービス提供システムの要部の論理構造を示す模式的なブロック図である。
【発明を実施するための形態】
【００４４】
本発明の実施の第一の形態を図１ないし図７を参照して以下に説明する。ただし、本実施の形態に関して前述した一従来例と同一の部分は、同一の名称を使用して詳細な説明は省略する。
【００４５】
図１を参照すると、本発明の第一の実施の形態は、クライアント装置１０１からのリクエストを受信してサービス実行部１０５〜１０７に適切にリクエストを分配する負荷分散管理部１０４と、クライアント装置１０１と負荷分散管理部１０４の間に配置され、サービス実行状況に対応してサービスの拒否や一時停止などを実行するサービス提供者別アクセス制御部１０３と、負荷分散管理部１０４から分配されたリクエストに対応して適切にサービスを実行するサービス実行部１０５〜１０７と、実際にリクエストに対応した処理を実行するサービスアプリケーション１１５〜１１７と、それぞれのサービス実行部１０５〜１０７内で動作しているサービスアプリケーション１１５〜１１７の実行状況を監視しているサービス実行監視部１２０と、から構成される。
【００４６】
サービス実行部１０５〜１０７の動作を以下に説明する。サービス実行部１０５〜１０７は、リクエストに対応してサービスアプリケーション１１５〜１１７の実行インスタンスを生成する。
【００４７】
本発明の前提であるＳａａＳ／ＡＳＰ型のビジネスモデルでは、同一のサービスアプリケーション１１５〜１１７を複数のサービス提供者で共有するので、処理内容は同じで内部データがサービス提供者ごとに異なる実行インスタンスが生成される。
【００４８】
サービス実行監視部１２０は、上記のように生成されて実行されているサービスアプリケーション１１５〜１１７の実行インスタンスの実行状況を対応するサービス提供者ごとに整理して、サービスアプリケーション１１５〜１１７の実行を制御する。
【００４９】
また、サービス提供者別アクセス制御部１０３は、サービス実行監視部１２０からの操作で特定のサービス提供者が要求するサービスへのリクエストを拒否したり一時保留したりする。
【００５０】
つぎに、図２を参照して図１のサービス実行監視部１２０の内部構成を以下に詳細に説明する。サービス実行監視部１２０は、複数のサービス実行部１０５〜１０７内での複数のサービス処理について、サービス提供者別の処理状況を集計して管理するサービス提供者別処理状況管理部１２１と、リクエストごとに実行されるサービス処理と、そのサービス処理が、どのサービス提供者のものであるかを保持しておく処理・サービス提供者関係管理部１２２と、クライアント装置１０１からのリクエスト到着時にそのリクエストが、どのサービス提供者のサービス処理を要求しているかを識別するサービス提供者識別部１２３と、サービスアプリケーション１１５〜１１７の複数の箇所に対してアクセスすることでリクエストに対するサービスアプリケーション１１５〜１１７の処理状況を監視し、状況に対応して処理を一時停止および中止させる処理監視制御手段であるサービス提供者別アクセス制御部１０３から構成される。
【００５１】
サービス提供者識別部１２３は、サービスアプリケーション１１５〜１１７に対するリクエストを解析し、どのサービス提供者向けのサービスとして動作したのかを識別する。
【００５２】
このとき、サービス提供者識別部１２３は、サービスアプリケーション１１５〜１１７の処理とは独立に定義され、サービスアプリケーション１１５〜１１７に対してプラグインされる形で目的の処理を実行する。
【００５３】
さらに、サービス提供者識別部１２３は、外部からの操作によって、特定サービス提供者のサービス実行に割り込んでサービス実行そのものを拒否したり、一時保留したりする機能も持つ。
【００５４】
こうしたアプリケーションに別処理をプラグインする仕組みを実現する技術の一例としては、アスペクト指向プログラミングであるＡＯＰ（Aspect Oriented Programming）などを使用することができる。
【００５５】
同様に、サービス提供者別アクセス制御部１０３は、サービスアプリケーション１１５〜１１７のいくつかの箇所にＡＯＰもしくは、それと同等の技術でプラグインされる形で挿入され、プラグインされた箇所の処理時間やＤＢアクセスした際のデータ量、送受信メッセージサイズなどを監視する。また、サービス提供者別アクセス制御部１０３はプラグインされた箇所で処理を中断したり、一時保留したりすることができる。
【００５６】
上述のようなサービス提供システム１１０は、コンピュータプログラムに対応して動作するコンピュータ装置などにより論理的に実現される。このようなコンピュータプログラムは、例えば、クライアント装置からのリクエストに対応してサービスを実行するサービス実行処理と、複数のクライアント装置からのリクエストを受信してサービス実行処理に分配する負荷分散処理と、それぞれのサービス実行処理のサービス実行状況を監視するサービス実行監視処理と、監視されるサービス実行状況に対応してサービスを制御するアクセス制御処理と、をサービス提供システム１１０に実行させるように記述される。
【００５７】
つぎに、本実施のサービス提供システム１１０のデータ処理方法を説明する。まず、サービス実行監視部１２０はサービス実行部１０５〜１０７でのサービスアプリケーション１１５〜１１７の動作に対してイベント駆動型で動作する。
【００５８】
そのため、サービスアプリケーション１１５〜１１７で発生するイベントごとの動作手順を図３〜図６のフローチャートを参照しながら動作について説明する。まず、サービスアプリケーション１１５〜１１７にリクエストが到着する際の処理動作Ｐ１０００を、図３を参照して以下に説明する。
【００５９】
サービス実行部１０５〜１０７がクライアント装置１０１からのサービスアプリケーション１１５〜１１７に対するリクエストを受信すると、そのサービスアプリケーション１１５〜１１７にプラグインされたサービス提供者識別部１２３がリクエストを見てどのサービス提供者向けのリクエストかを識別する（Ｐ１００１）。
【００６０】
サービス提供者識別部１２３はサービス提供者の識別子とサービスアプリケーション１１５〜１１７の実行インスタンスの識別子を組にして処理・サービス提供者関係管理部１２２に送付する（Ｐ１００２）。
【００６１】
処理・サービス提供者関係管理部１２２は受信したサービス提供者識別子とサービスアプリケーション１１５〜１１７の実行インスタンス識別子の組を記録する（Ｐ１００３）。
【００６２】
つぎに、サービスアプリケーション１１５〜１１７動作中の処理状況の監視動作Ｐ１１００について、図４を参照して以下に説明する。処理監視制御部１２４はサービスアプリケーション１１５〜１１７の実行インスタンスにプラグインされており、実行インスタンスの処理がプラグインされている箇所に到達する際にその実行インスタンスが対応するサービス提供者情報を処理・サービス提供者関係管理部１２２へ問い合わせる（Ｐ１１０１）。
【００６３】
処理監視制御部１２４がプラグインされている周辺での処理にかかる時間、データベースアクセス時の交換データ量、通信データ量などの情報を収集する（Ｐ１１０２）。Ｐ１１０１で取得したサービス提供者情報とＰ１１０２で収集した実行状況の情報を監視情報としてサービス提供者別処理状況管理部１２１へ送付する（Ｐ１１０３）。
【００６４】
なお、処理監視制御部１２４はサービスアプリケーション１１５〜１１７の一つ以上の箇所にプラグインされており、実行インスタンスの処理がその箇所に到達する都度、対応する処理監視制御部１２４の上記処理が呼び出される。
【００６５】
つぎに、処理監視制御部１２４からの監視情報を受信した際のサービス提供者別処理状況管理部１２１の動作Ｐ１２００について、図５を参照して説明する。サービス提供者別処理状況管理部１２１は処理監視制御部１２４からの実行状況の情報を受信すると、サービス提供者ごとの処理状況を記録する（Ｐ１２０１）。
【００６６】
他のサービス提供者の処理と比較して突出して負荷の要因となっているサービス提供者がいないか調べる（Ｐ１２０２）。Ｐ１２０２の条件のサービス提供者がいない場合(Ｐ１２０２−Ｎ)、処理を終了し、つぎの処理監視制御部１２４からの監視情報を待つ。
【００６７】
Ｐ１２０２の条件のサービス提供者がいる場合(Ｐ１２０２−Ｙ)、サービス提供者別処理状況管理部１２１はサービス提供者別アクセス制御部１０３に対して、監視しているサービス実行部１０５〜１０７の識別子と、そのサービス提供者の識別子を通知する（Ｐ１２０３）。
【００６８】
つぎに、サービス提供システム１１０内の何れかのサービス実行監視部１２０のサービス提供者別処理状況管理部１２１からサービス実行部１０５〜１０７の識別子とサービス提供者の識別子を受け取ったサービス提供者別アクセス制御部１０３の動作Ｐ１３００について、図６を参照して以下に説明する。
【００６９】
まず、サービス提供者別アクセス制御部１０３はサービス提供者別処理状況管理部１２１から通知されたサービス提供者識別子とサービス実行部識別子の組を記録する（Ｐ１３０１）。
【００７０】
記録した情報から該当のサービス提供者のリクエストを割り振ることのできるサービス実行部１０５〜１０７が存在するかを調べる（Ｐ１３０２）。割り振るサービス実行部１０５〜１０７がなければ(Ｐ１３０２−Ｎ)、以降のそのサービス提供者のリクエストに対して処理できない旨のエラーを返す（Ｐ１３０３）。
【００７１】
割り振るサービス実行部１０５〜１０７がある場合(Ｐ１３０２−Ｙ)、負荷分散管理部１０４にそのサービス提供者に対するリクエストを割り振ってよいサービス実行部識別子を設定する（Ｐ１３０４）。
【００７２】
つぎに、本実施の形態の効果について説明する。本実施の形態では、サービスアプリケーション１１５〜１１７の外部から処理監視制御部１２４をプラグインし、一つ一つの実行インスタンスの内部処理の監視情報をもとにリクエストの受信を制御する。
【００７３】
同じサービスを共有するＳａａＳ型などの提供形態では、単純に外部観測しただけではサービス提供者ごとの処理内部の負荷状況を知ることは困難である。しかし、上述のようにサービス実行状況を監視してサービスを制御するので、ＳａａＳ／ＡＳＰ型のサービスアプリケーション１１５〜１１７を共有するような形態のサービス提供システムでもサービス提供者ごとの処理負荷をもとに流量制御ができる。
【００７４】
また、リクエスト受信部のコネクション数だけでなく、内部負荷を考慮した流量制御が可能である。このため、異なるサービス提供者のサービス間での性能などを干渉しにくくすることができる。
【００７５】
つぎに、本発明の実施の第二の形態を図７を参照して以下に詳細に説明する。処理監視制御部１２４からの監視情報を受信した際のサービス提供者別処理状況管理部１２１の動作Ｐ１２５０について図７を参照して以下に説明する。
【００７６】
サービス提供者別処理状況管理部１２１はサービス提供者別アクセス制御部１０３からの実行状況の情報を受信すると、サービス提供者ごとの処理状況を記録する（Ｐ１２５１）。そのサービス提供者向けの実行インスタンスが一定数以上異常状態でないかどうかを調べる（Ｐ１２５２）。
【００７７】
一定数以上である場合(Ｐ１２５２−Ｙ)、サービス提供者別アクセス制御部１０３に対して該当サービス提供者の実行インスタンスを強制終了させ、Ｐ１２５５へジャンプする（Ｐ１２５３）。一定数以上でない場合(Ｐ１２５２−Ｎ)、他のサービス提供者の処理と比較して突出して負荷の要因となっているサービス提供者がいないか調べる（Ｐ１２５４）。
【００７８】
Ｐ１２５４の条件のサービス提供者がいない場合(Ｐ１２５４−Ｎ)、処理を終了し、つぎのサービス提供者別アクセス制御部１０３からの監視情報を待つ。Ｐ１２５４の条件のサービス提供者がいる場合(Ｐ１２５４−Ｙ)、サービス提供者別処理状況管理部１２１はサービス提供者別アクセス制御部１０３に対して、監視しているサービス実行部１０５〜１０７の識別子と、そのサービス提供者の識別子を通知する（Ｐ１２５５）。
【００７９】
本発明の実施の第二の形態の効果について説明する。本実施の形態では、ＳａａＳ／ＡＳＰ型のサービスアプリケーション１１５〜１１７を共有するような形態のサービス提供システムでもサービス提供者ごとの処理負荷をもとに流量制御をするとともに、特定のサービス提供者向け実行インスタンスに異常が発生した場合にサービスアプリケーション１１５〜１１７全体を停止するのではなく、そのサービス提供者向けの実行インスタンスのみを停止し、以降のそのサービス提供者向けのリクエストのみを拒否することができる。
【００８０】
つぎに、本発明の実施の第三の形態を図８ないし図１２を参照して以下に詳細に説明する。図８を参照すると、本発明の第三の実施の形態は、クライアント装置１０１からのリクエストを受信してサービス実行部１０５〜１０７に適切にリクエストを分配する負荷分散管理部１０４と、負荷分散管理部１０４から分配されたリクエストに対応して適切にサービスを実行するサービス実行部１０５〜１０７と、実際にリクエストに対応した処理を実行するサービスアプリケーション１１５〜１１７と、それぞれのサービス実行部１０５〜１０７内で動作しているサービスアプリケーション１１５〜１１７の実行状況を監視しているサービス実行監視部１３０、システム内の全てのサービス実行監視部１３０からの監視情報を収集し、流量制御を指示するサービス提供者別アクセス制御部１４０から構成される。
【００８１】
図９で図８のサービス実行監視部１３０の内部構成を詳細に説明する。サービス実行監視部１３０は、複数のサービス実行部１０５〜１０７内での複数のサービス処理について、サービス提供者別の処理状況を集計して管理するサービス提供者別処理状況管理部１３１と、リクエストごとに実行されるサービス処理と、そのサービス処理が、どのサービス提供者のものであるかを保持しておく処理・サービス提供者関係管理部１２２と、クライアント装置１０１からのリクエスト到着時にそのリクエストが、どのサービス提供者のサービス処理を要求しているかを識別し、必要に対応して特定のサービス提供者向け処理を制限するサービス提供者識別部１３３と、サービスアプリケーション１１５〜１１７の複数の箇所に対してアクセスすることでリクエストに対するサービスアプリケーション１１５〜１１７の処理状況を監視し、状況に対応して処理を一時停止および中止させるサービス提供者別アクセス制御部１４０から構成される。
【００８２】
本実施の形態のサービス提供者別処理状況管理部１３１がサービス提供者別アクセス制御部１４０からの監視情報を受信した際の動作Ｐ１２７０について、図１０を参照して以下に説明する。
【００８３】
サービス提供者別処理状況管理部１２１はサービス提供者別アクセス制御部１４０からの実行状況の情報を受信すると、サービス提供者ごとの処理状況を記録する（Ｐ１２７１）。前回該当サービス提供者の負荷評価をサービス提供者別アクセス制御部１４０で行ってから一定の時間が経過しているかどうかを調べる（Ｐ１２７２）。
【００８４】
一定時間が経過していない場合(Ｐ１２７２−Ｎ)、一連の処理を終了し、つぎのサービス提供者別アクセス制御部１４０からの監視情報を待つ。一定時間が経過している場合(Ｐ１２７２−Ｙ)、サービス提供者別処理状況管理部１３１はサービス提供者別アクセス制御部１４０に対して、監視しているサービス実行部１０５〜１０７の識別子と、そのサービス提供者の識別子および負荷状況を通知する（Ｐ１２７３）。
【００８５】
Ｐ１２７０の処理で特定サービス提供者の負荷状況を通知されたサービス提供者別アクセス制御部１４０の動作Ｐ１３５０を、図１１を参照して以下に説明する。
【００８６】
サービス提供者別アクセス制御部１４０はサービス提供者別処理状況管理部１３１から通知されたサービス提供者識別子とサービス実行部識別子の組である負荷情報を記録する（Ｐ１３５１）。
【００８７】
この時点以降、サービス提供者別アクセス制御部は他のサービス提供者別処理状況管理部１３１から同一のサービス提供者に関する負荷情報が通知されても無視する。通知の通知元のサービス実行監視部１３０以外の全てのサービス実行監視部１３０内のサービス提供者別処理状況管理部１３１から該当サービス提供者の負荷情報を取得する（Ｐ１３５２）。
【００８８】
全サービス実行監視部からの該当サービス提供者の負荷情報を評価し、事前に設定されている上限を超えているかを判定する（Ｐ１３５３）。超えていなければ(Ｐ１３５３−Ｎ)、Ｐ１３５５以降の処理を実行する。
【００８９】
超えていれば(Ｐ１３５３−Ｙ)、全サービス実行監視部１３０のサービス提供者別処理状況管理部１３１へ該当サービス提供者のサービス処理を一時的に制限するよう通知する（Ｐ１３５４）。
【００９０】
全サービス実行監視部１３０のサービス提供者別処理状況管理部１３１の該当サービス提供者向け負荷評価時刻を更新して終了する（Ｐ１３５５）。終了次第、Ｐ１３５１以後無視されていた該当サービス提供者に関する負荷情報の通知を再度受信できるようになる。
【００９１】
つぎに、Ｐ１３５０の処理の結果、特定サービス提供者向けの処理を一時的に制限する通知を受信したサービス実行監視部１３０の動作Ｐ１４００について、図１２を参照して以下に説明する。
【００９２】
特定サービス提供者向けのサービス処理の制限を通知されたサービス実行監視部１３０のサービス提供者別処理状況管理部１３１は該当サービス提供者向け処理をブロックするようサービス提供者識別部１３３へ通知する（Ｐ１４０１）。
【００９３】
この通知により、サービス提供者識別部１３３で該当サービス提供者向け処理と判断されたものは、以降のサービス処理をブロックされ新規実行インスタンスが生成されない。
【００９４】
同様に、サービス提供者別アクセス制御部１４０に対しても該当サービス提供者向け実行インスタンスの処理をブロックするよう通知する（Ｐ１４０２）。この通知により、サービス提供者別アクセス制御部は該当サービス提供者向け実行インスタンスの処理を一時停止する。
【００９５】
ただし、一律に止めるのではなく全体処理の後半以降のサービス提供者別アクセス制御部１４０はそのまま実行インスタンスの処理を継続させてもよい。この状態で一定時間該当サービス提供者向け処理の制限を継続する（Ｐ１４０３）。この時間経過後、Ｐ１４０１，Ｐ１４０２で設定したアクセス制限を解除する（Ｐ１４０４）。
【００９６】
本発明の実施の第三の形態の効果について説明する。本実施の形態では、サービスアプリケーション１１５〜１１７の外部からプラグインしたサービス提供者識別部１３３とサービス提供者別アクセス制御部１４０を利用して一定以上の負荷を発生しているサービス提供者の実行中処理をブロックすることによって現在発生しつつある特定サービス提供者向け処理に伴う負荷を一時的に下げることができる。
【００９７】
つぎに、本発明の実施の第四の形態を、図２および図１４および図１６を参照して以下に詳細に説明する。図１４を参照すると、本発明の第四の実施の形態は、クライアント装置１０１からのリクエストを受信してサービス実行部１０５〜１０７に適切にリクエストを分配する負荷分散管理部４０４と、クライアント装置１０１と負荷分散管理部４０４の間に配置され、サービス実行状況に対応してサービスの拒否や一時停止、サービスの外部への退避などを実行するサービス提供者別アクセス制御部４０３と、負荷分散管理部１０４から分配されたリクエストに対応して適切にサービスを実行するサービス実行部１０５〜１０６と、実際にリクエストに対応した処理を実行するサービスアプリケーション１１５〜１１６と、それぞれのサービス実行部１０５〜１０６内で動作しているサービスアプリケーション１１５〜１１６の実行状況を監視しているサービス実行監視部１２０と、これらから構成される共用型のサービス提供システム１１０とは別の専用型のサービス提供システム４００から構成される。
【００９８】
専用型のサービス提供システム４００は共用型のサービス提供システムと同様にサービス実行部１０７とその中で動作しているサービスアプリケーション１１７から構成される。
【００９９】
つぎに、図２に示すサービス提供システム１１０内の何れかのサービス実行監視部１２０のサービス提供者別処理状況管理部１２１からサービス実行部１０５〜１０６の識別子とサービス提供者の識別子を受け取ったサービス提供者別アクセス制御部４０３の動作Ｐ１６００について、図１６を参照して以下に説明する。
【０１００】
まず、サービス提供者別アクセス制御部４０３はサービス提供者別処理状況管理部１２１から通知された突出して負荷の高いサービス提供者識別子とサービス実行部識別子の組を記録する（Ｐ１６０１）。
【０１０１】
記録した情報から該当のサービス提供者のリクエストを割り振ることのできる共用型のサービス提供システム１１０内のサービス実行部１０５〜１０６が存在するかを調べる（Ｐ１６０２）。
【０１０２】
割り振るサービス実行部１０５〜１０６がなければ(Ｐ１６０２−Ｎ)、以降のそのサービス提供者のリクエストはそのサービス提供者専用に別途構築された専用型のサービス提供システム４００で処理するよう負荷分散管理部４０４を設定する（Ｐ１６０３）。
【０１０３】
割り振るサービス実行部１０５〜１０６がある場合(Ｐ１６０２−Ｙ)、負荷分散管理部４０４にそのサービス提供者に対するリクエストを割り振ってよいサービス実行部識別子を設定する（Ｐ１６０４）。
【０１０４】
本発明の実施の第四の形態の効果について説明する。本実施の形態では、極めて高い負荷がかかるサービス提供者の処理を相乗り型のサービス提供システム１１０の外部の専用型のサービス提供システム４００で処理することにより、他のサービス提供者の処理への影響を排除できる。
【０１０５】
つぎに、本発明の実施の第五の形態を図１５と図１７、図１８、図１９を参照して以下に詳細に説明する。図１５を参照すると、本発明の第五の実施の形態は、クライアント装置１０１からのリクエストを受信してサービス実行部１０５〜１０７に適切にリクエストを分配する負荷分散管理部１０４と、クライアント装置１０１と負荷分散管理部１０４の間に配置され、サービス実行状況に対応してサービスの拒否や一時停止などを実行するサービス提供者別アクセス制御部４１３と、サービス提供者ごとの課金プランを管理している課金管理部５００と、負荷分散管理部１０４から分配されたリクエストに対応して適切にサービスを実行するサービス実行部１０５〜１０７と、実際にリクエストに対応した処理を実行するサービスアプリケーション１１５〜１１７と、それぞれのサービス実行部１０５〜１０７内で動作しているサービスアプリケーション１１５〜１１７の実行状況を監視しているサービス実行監視部１３５と、から構成される。
【０１０６】
つぎに、図１９に示すサービス提供システム１１０内の何れかのサービス実行監視部１３５は、第１の実施例のサービス実行監視部１２０とほぼ同じ構成だが、サービス提供者別処理状況管理部１２９の動作だけが異なり、これは定期的にサービス提供者ごとの処理にかかる時間、データベースアクセス時の交換データ量、通信データ量などの情報を負荷情報としてサービス提供者別アクセス制御部４１３へ通知する。
【０１０７】
サービス提供者別処理状況管理部１２９からサービス実行部１０５〜１０７の何れかのサービス提供者ごとの負荷情報を受け取ったサービス提供者別アクセス制御部４１３の動作Ｐ１７００について、図１７を参照して以下に説明する。
【０１０８】
まず、サービス提供者別アクセス制御部４１３は、サービス提供者別処理状況管理部１２９から通知されたサービス提供者ごとの負荷情報を記録する（Ｐ１７０１）。 その時点で記録されている全てのサービス実行部の全てのサービス提供者の負荷を合計する（Ｐ１７０２）。
【０１０９】
このとき、負荷情報に含まれる処理時間などの特定の値のみを合計してもよいし、それぞれあらかじめ決められた重みづけをしたデータベースアクセス量その他の値も含めて合計してもよい。つづいて、全てのサービス実行部における個々のサービス提供者ごとの負荷を合計し、Ｐ１７０２で計算した全体の負荷に占める割合を計算して記録する（Ｐ１７０３）。
【０１１０】
つぎに本実施例において、クライアント装置１０１からのリクエストをサービス提供者別アクセス制御部４１３が受信した場合の動作Ｐ１８００について図１８を参照して以下に説明する。
【０１１１】
リクエストがサービス提供者別アクセス制御部４１３に到着すると、定期的に前述のＰ１７０２の処理で計算される全てのサービス実行部の全てのサービス提供者の負荷の合計値があらかじめ決められた閾値を超えているか判定する（Ｐ１８０１）。
【０１１２】
負荷が閾値に満たない場合（Ｐ１８０１−Ｎ）は、そのリクエストはそのまま負荷分散管理部４０４に渡されて、以後、サービス実行部１０５〜１０７で処理が行われる（Ｐ１８０２）。
【０１１３】
一方、負荷が閾値を超える場合（Ｐ１８０１−Ｙ）は、課金管理部５００に問い合わせて、全てのサービス提供者に対する課金金額の合計に対してそのリクエストが該当するサービス提供者の契約している課金金額の割合を計算する（Ｐ１８０３）。
【０１１４】
ここで計算したそのリクエストに該当するサービス提供者の課金金額の全体に対する割合と、前述のＰ１７０３で計算、記録された同じサービス提供者の全体の負荷に占める割合を比較し、負荷割合の方が小さいか確認する（Ｐ１８０４）。
【０１１５】
課金割合と比較して負荷割合の方が小さい場合（Ｐ１８０４−Ｙ）、そのリクエストはそのまま負荷分散管理部４０４に渡されて、以後、サービス実行部１０５〜１０７で処理が行われる（Ｐ１８０２）。負荷割合の方が課金割合より大きい場合（Ｐ１８０４−Ｎ）、そのリクエストはブロックされる（Ｐ１８０５）。
【０１１６】
本発明の実施の第五の形態の効果について説明する。本実施の形態では、システム全体の負荷があらかじめ指定した閾値を超え、負荷を下げる必要が生じた場合に、サービス提供者ごとの課金の度合いに応じて処理をブロックすることが可能となる。
【０１１７】
なお、本発明は本実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で各種の変形を許容する。例えば、本発明は多数のサービス提供者のサービスアプリケーションを実行させるＳａａＳ／ＡＳＰ、ＰａａＳ（Platform as a Service）のようなクラウドプラットフォームにも適用できる。
【０１１８】
また、上記の各種形態ではサービス提供システムの各部がコンピュータプログラムにより各種機能として論理的に実現されることを例示した。しかし、このような各部の各々を固有のハードウェアとして形成することもでき、ソフトウェアとハードウェアとの組み合わせとして実現することもできる。当然ながら、上述した実施の形態および複数の変形例は、その内容が相反しない範囲で組み合わせることができる。
【０１１９】
この出願は、２０１０年０２月２３日に出願された日本出願特願２０１０−０３６８７３号および２０１０年０８月０９日に出願された日本出願特願２０１０−１７８４４７号を基礎とする優先権を主張し、その開示の全てを、ここに取り込む。
【図１】
2011104999.tif 000003
【図２】
2011104999.tif 000004
【図３】
2011104999.tif 000005
【図４】
2011104999.tif 000006
【図５】
2011104999.tif 000007
【図６】
2011104999.tif 000008
【図７】
2011104999.tif 000009
【図８】
2011104999.tif 000010
【図９】
2011104999.tif 000011
【図１０】
2011104999.tif 000012
【図１１】
2011104999.tif 000013
【図１２】
2011104999.tif 000014
【図１３】
2011104999.tif 000015
【図１４】
2011104999.tif 000016
【図１５】
2011104999.tif 000017
【図１６】
2011104999.tif 000018
【図１７】
2011104999.tif 000019
【図１８】
2011104999.tif 000020
【図１９】
2011104999.tif 000021
【国際調査報告】
2011104999.tif 000022
2011104999.tif 000023
2011104999.tif 000024
2011104999.tif 000025
2011104999.tif 000026
2011104999.tif 000027
2011104999.tif 000028
2011104999.tif 000029