(57)【要約】【課題】複数のサービスを連携する連携システムにおいて、適切なサーバ台数を割当可能なサービス提供システムを提供することが可能なシステムを提供する。【解決手段】クライアント１１０は、要求振分機能を有するサーバ１２０を介して、複数のサーバ１５０，１６０，１７０に対して要求する。サーバ１２０は、過去の履歴に基づいて画面と要求の関係を算出し、各クライアントが現在表示している画面の種類と数に応じて、今後のクライアントからの要求数を予測し、予測した要求数に応じて、複数のサーバに振り分ける。【選択図】図１
2011237845.tif 000002
【特許請求の範囲】
【請求項１】
複数のクライアント及び複数のサーバが通信線を介して接続され、前記クライアントからのサービス提供要求に対し、該サービスを実行するのに必要となる機能を前記複数のサーバで分担して提供するサービス提供システムであって、
前記サービス提供システムは、前記クライアントからのサービス提供要求を受けて、該サービスを提供する前記サーバを特定し、特定したサーバに該サービス提供要求を振り分ける要求振分機能を有する要求振分サーバを更に備え、
前記クライアントは、前記要求振分サーバに対して要求を送信し、
前記要求振分サーバは、要求の内容と要求の結果前記クライアントに返却した画面を記録し、前記クライアントに最後に表示した画面から、今後の要求数を予測し、該予測の結果に基づいて、前記サービスを実行するのに必要な前記複数のサーバの台数を算出し、該算出結果に基づいて、前記複サーバに要求を振り分ける
ことを特徴とするサービス提供システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービス提供システムに係り、特に、ネットワークで接続された複数のコンピュータシステムが連携して処理を行なうシステムに適用して好適なサービス提供システムに関する。
【背景技術】
【０００２】
近年、サービスの機能を提供するサービスプログラムをサーバ側に有し、そのサービスプログラムを呼び出すクライアントプログラムをクライアント側に有し、両者がネットワークで接続し、複数のコンピュータを連携させたサービス提供システムが一般化している。
利用者は、クライアントを利用して操作を行い、クライアントプログラムは、必要なサービスプログラムを所定のサーバから適切に呼び出して、利用者の要求に応えるようになっている。
このようなシステムでは、サービスの提供に必要なサーバ数が膨大となることから、必要なサーバ数を適切にコントロールする技術が望まれている。
【０００３】
この点特許文献１には、サービスに必要なサーバを最低限の台数にするための技術が開示されている。この技術では、クライアントからの要求数に着目し、蓄積された過去の要求数に基づいて将来の要求数を予測し、この予測結果からサーバ数を調整するようになっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開ＷＯ２００４−０９２９７１
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１は、クライアントからの要求数が、短期又は長期的に急減に増加することは考慮していない。即ち特許文献１のように、過去の要求数から予測しただけでは、このような急激な変化に対応することはできず、割り当てるサーバ数が適切な数とならないという問題がある。
【課題を解決するための手段】
【０００６】
上術した課題を解決するために、本発明の一側面によれば、サービス提供システムは、クライアント（例えば、クライアント１１０）からのサービス要求に対し、サービスが複数の機能（例えば、データ登録、メール送信）により構成されており、複数の機能を、複数のサーバ（例えば、サーバ１２０，１３０）が分担して、ネットワークを介してサービスを実行する。
【０００７】
クライアントは、サービスを開始すると、サービスの機能を分担する複数のサーバを特定し、特定された各サーバに対しサービスの提供が可能な状態であるか否かの問い合わせを送信し、複数のサーバは、問い合わせを受理すると、サービスを実行するのに必要な所定条件を満たすか否かを判定し、その判定結果をクライアントに送信し、クライアントは、問い合わせした各サーバからの判定結果が、サービスの提供が可能な状態であ場合、サービスの実行要求を各サーバに送信することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、サービス提供システムにおいて、サーバの割当てを適切に管理することを目的とする。
【図面の簡単な説明】
【０００９】
【図１】本発明を適用した一実施の形態における連携システムの全体構成を示す図である。
【図２】本発明を適用した一実施の形態におけるポータル画面を示す図である。
【図３】本発明を適用した一実施の形態における電車料金計算画面を示す図である。
【図４】本発明を適用した一実施の形態における電車料金計算結果画面を示す図である。
【図５】本発明を適用した一実施の形態における旅費清算データ登録画面を示す図である。
【図６】本発明を適用した一実施の形態における旅費清算データ登録結果画面を示す図である。
【図７】本発明を適用した一実施の形態における画面の表示順序を示す図である。
【図８】本発明を適用した一実施の形態における旅費清算データの例を示す図である。
【図９】本発明を適用した一実施の形態における要求履歴データの例を示す図である。
【図１０】本発明を適用した一実施の形態における要求履歴分析結果の例を示す図である。
【図１１】本発明を適用した一実施の形態における要求予測数の例を示す図である。
【図１２】本発明を適用した一実施の形態における要求振分プログラムの処理フローを示す図である。
【図１３】本発明を適用した一実施の形態における要求振分プログラムの処理の流れを示す概念図である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態を図面に基づいて詳細に説明する。
図１は、本発明を適用した連携システムの全体構成を示す図である。図１において、複数のコンピュータシステムが連携して処理を行う連携システムとして、旅費清算データ登録システムを例として説明する。本実施形態の連携システムは、ネットワーク２００に接続されたクライアント１１０、サーバ１２０、サーバ１３０、サーバ１４０、サーバ１５０、サーバ１６０およびサーバ１７０で構成されている。
【００１１】
クライアント１１０は、利用者が操作するクライアントであり、主記憶装置１１１、ＣＰＵ（Central Processing Unit）１１２で構成され、入出力装置１１４（出力部）が接続されている。主記憶装置１１１には、クライアントプログラム１１３が含まれる。なお、図に示すように同一の構成を持つクライアントが複数あるものとする。
【００１２】
サーバ１２０は、クライアントからの要求に対して、各機能を実現するサーバに振り分ける機能を提供するサーバであり、主記憶装置１２１、ＣＰＵ１２２で構成され、ディスク装置１２４が接続されている。主記憶装置１２１には、要求振分プログラム１２３が含まれる。また、ディスク装置１２４には、要求履歴データ１２５が含まれる。
【００１３】
サーバ１３０は、データベース機能を提供するサーバであり、主記憶装置１３１、ＣＰＵ１３２で構成される。主記憶装置１３１には、データベースプログラム１３３が含まれる。サーバ１４０は、ポータル画面を表示する機能を提供するサーバであり、主記憶装置１４１、ＣＰＵ１４２で構成されている。主記憶装置１４１には、ポータルプログラム１４３が含まれる。
【００１４】
サーバ１５０は、電車料金計算機能と、旅費清算データ登録機能を提供するサーバであり、主記憶装置１５１、ＣＰＵ１５２で構成されている。主記憶装置１５１には、電車料金計算プログラム１５３と、旅費清算データ登録プログラム１５４が含まれる。
サーバ１６０、および、サーバ１７０は、サーバ１５０と同等の機能を提供するサーバであり、サーバ１５０と同様の構成とする。
【００１５】
ネットワーク２００は、例えば、インターネットなどのオープンなネットワークや、社内ネットワーク（イントラネット）などのローカルなネットワーク、あるいはそれらを組み合わせたものでもよい。
【００１６】
また、クライアントプログラム１１３は、Ｗｅｂシステムとして実現し、利用者がインターネットブラウザによって操作するものとしてもよい。また、利用者がクライアント１１０を操作する際に、ユーザＩＤやパスワードなどを用いて本人であることを確認するログイン機能を備えるようにしてもよい。
【００１７】
なお、主記憶装置１１１，１２１，１３１は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）などにより構成される。ディスク装置１２４，１３４は、ＨＤＤ（Hard disk drive）装置などにより構成される。ＣＰＵ１１２、１２２、１３２及び１４２は、ＲＡＭ、ＲＯＭなどに記憶されているプログラムを実行する。入出力装置１１４のうち入力装置は、キーボードやマウスなどのコンピュータに指示を入力するための装置であり、プログラム起動などの指示を入力する。また、入出力装置１１４のうち出力装置は、ディスプレイなどであり、後述するポータル画面Ｐ００１（図２）、電車料金計算画面Ｄ００１（図３）、電車料金計算結果画面Ｄ００２（図４）、旅費清算データ登録画面Ｒ００１（図５）、旅費清算データ登録結果画面Ｒ００２（図６）などを表示する。
【００１８】
次に、クライアント１１０、サーバ１２０，１３０，１４０、１５０、１６０及び１７０の処理について説明する。
【００１９】
利用者が入出力装置１１４を介して入力を行うと、クライアントプログラム１１３は、入力に応じて、サーバ１２０の要求振分プログラム１２３を介して、サーバ１４０のポータルプログラム１４３、および、サーバ１５０、サーバ１６０、サーバ１７０の電車料金計算プログラム１５３、１６３、１７３と旅費清算データ登録プログラム１５４、１６４、１７４に指示を与え、情報のやり取りを行うものとする。
【００２０】
クライアントプログラム１１３は、サーバ１２０の要求振分プログラム１２３に、要求するサービスの区別と要求の区別を送信する。サービスの区別とは、ポータル機能か、電車料金計算機能か、旅費清算データ登録機能かの区別を示す。要求の区別とは、ポータル機能であれば画面表示、電車料金計算機能であれば、画面表示、または、電車料金計算、旅費清算機能であれば、画面表示、または、登録がある。
【００２１】
クライアントプログラム１１３から受け付けたサービスの区別に応じて、該当するサーバに要求を送信する。サーバ１４０のポータルプログラム１４３、サーバ１５０、サーバ１６０、サーバ１７０の電車料金計算プログラム１５３、１６３、１７３、および、旅費清算データ登録プログラム１５４、１６４、１７４は、サーバ１２０の要求振分プログラムから受け付けた要求の区別に従って、情報を返却する。
【００２２】
各サーバのプログラムから情報を受け取った要求振分プログラム１２３は、受け取った内容をクライアント１１３に返却し、クライアント１１３は受け取った情報に従って、入出力装置１１４に画面表示する。
【００２３】
また、サーバ１２０の要求振分プログラムは、要求を受け付けるごとに、要求を受け付けた日時、要求元のクライアントを区別する端末番号、要求されたサービスの区別、要求の区別、および、各機能を提供するサーバから返却された画面の画面番号を要求履歴データ１２５に記録するものとする。
【００２４】
なお、サーバ１５０、１６０、１７０の旅費清算データ登録プログラム１５４、１６４、１７４は、ネットワーク２００を介して、サーバ１３０のデータベースプログラム１３３に指示を与え、旅費清算データ１３５に情報を登録するものとする。
【００２５】
次に、図２から図６を用いて、クライアントプログラム１１３に表示される画面を中心に処理の流れを説明する。
【００２６】
クライアントプログラム１１３を起動すると、クライアント１１３から、要求振分プログラム１２３に、ポータル機能の画面表示要求を送信する。要求振分プログラム１２３は、サーバ１４０のポータルプログラム１４３から画面情報を受け取り、クライアントプログラム１１３に返却する。クライアントプログラム１１３は、受け取った情報を元に図２に示す画面Ｐ００１を表示する。
【００２７】
図２は、受け取ったポータルの画面をクライアントプログラム１１３が表示した様子である。画面Ｐ００１は、旅費清算の作業の説明文章と、ボタン２０１、ボタン２０２、ボタン２０３で構成される。画面Ｐ００１で利用者が電車料金表示ボタン２０１をクリックすると、クライアントプログラム１１３は、要求振分プログラム１２３に対して、電車料金計算機能の画面表示要求を送信し、受け取った情報を元に図３に示す画面Ｄ００１を表示する。利用者が旅費清算データ登録ボタン２０２をクリックすると、クライアントプログラム１１３は、要求振分プログラム１２３に対して、旅費清算機能の画面表示要求を送信し、受け取った情報を元に図５の画面Ｒ００１を表示する。利用者が閉じるボタン２０３をクリックすると、画面を閉じて、終了する。
【００２８】
図３は、電車料金計算機能を利用するための画面Ｄ００１である。画面Ｄ００１は、出発駅入力エリア３０１、到着駅入力エリア３０２と、ボタン３０３で構成される。入力エリア３０１、３０２は、利用者が電車料金を計算するための情報として駅の名前を入力するエリアである。利用者が入力エリア３０１と３０２に駅の名前を入力して、ボタン３０３をクリックすると、クライアントプログラム１１３は、入力エリア３０１、３０２の情報と共に、要求振分プログラム１２３に対して、料金計算機能の電車料金計算要求を送付し、受け取った情報を元に、画面Ｄ００２を表示する。
【００２９】
図４は、電車料金計算結果を表示する画面Ｄ００２である。画面Ｄ００２は、出発駅４０１、到着駅４０２、計算結果４０３、ボタン４０４で構成される。出発駅４０１、および、到着駅４０２は、計算の元となったＤ００１で入力した内容を表示するものとする。計算結果４０３は、電車料金計算プログラムから返却された情報を表示する。利用者がボタン４０４をクリックすると、要求振分プログラム１２３に対して、旅費清算データ登録機能の画面表示要求を送付し、受け取った情報を元に、図５の画面Ｒ００１を表示する。
【００３０】
図５は、旅費清算データ登録を行うための画面Ｒ００１である。画面Ｒ００１は、入力エリア５０１、５０２、５０３、５０４、ボタン５０５で構成される。利用者が入力エリア５０１、５０２、５０３、５０４に必要な情報を入力し、登録ボタンをクリックすると、クライアントプログラム１１３は、要求振分プログラム１２３に対して、旅費清算データ登録機能の登録要求を送付し、受け取った情報を元に、図６の画面Ｒ００２を表示する。
【００３１】
図６は旅費清算データ登録完了を示す画面Ｒ００２である。画面Ｒ００２には、ボタン６０１が含まれる。利用者がボタン６０１をクリックすると、画面を閉じ、終了する。
【００３２】
図７は、これまで図２から６を用いて説明した画面の流れ全体を示した図である。図７に示すとおり、クライアントプログラム１１３は、それぞれのサーバと情報のやりとりをしながら、画面Ｐ００１、Ｄ００１、Ｄ００２、Ｒ００１、および、Ｒ００２を表示する。
【００３３】
図８は、旅費清算データの具体例を示す説明図である。図８は、図１の旅費清算データ１３５を詳細に表したものである。旅費清算データ１３５は、複数のレコードで構成され、各レコードは、処理番号３０１、氏名３０２、日付３０３、出張先３０４、旅費３０５で構成される。具体的には、処理番号３０１が００１の場合は、鈴木太郎さんが、２００８年１月１５日に東京に出張し、旅費は１５００円であることがわかる。
【００３４】
図９は、要求振分プログラム１２３が記録する要求履歴データ１２５の詳細な具体例を示す図である。要求履歴データ１２５は、複数のレコードで構成され、各レコードは、日時９０１、端末番号９０２、要求機能９０３、要求詳細９０４及び出力画面番号９０４で構成される。例えば、日時が2008/01/15 10:01となっている最初のレコードは、端末番号１１０であり、ポータル機能の画面表示を要求し、画面Ｐ００１を返却したことを表す。
【００３５】
次に、図１２を用いて、要求振分の処理について説明する。
図１２は、要求振分プログラム１２３の処理フローを示す図である。
要求振分プログラム１２３は、ステップＳ１２０２で、クライアントプログラム１１３から要求を受け付けると、ステップＳ１２０３に進む。
ステップＳ１２０３では、要求履歴データ１２５を参照し、過去５分間の要求履歴から各機能の今後の要求数を算出する。
【００３６】
図１０は、過去５分間の要求履歴の分析結果の例である。画面番号１００１に記載された画面番号が要求された５分以内に、電車料金計算プログラムへの要求が到着した割合をカラム１００２に、旅費清算データ登録プログラムへの要求が到着した割合をカラム１００３に示してある。例えば、画面Ｐ００１が要求された５分以内に到着した要求のうち、６７％が電車料金計算プログラムへの要求であり、３３％が旅費清算データ登録プログラムへの要求であったことを示している。このように、要求履歴を分析する。
【００３７】
図１１は、図１０に示した要求履歴分析結果１０００を元に、今後の要求数を算出した例である。現時点で複数のクライアントから最後に要求された画面を要素１１０１に、その台数を要素１１０２に示している。これを元に、図１０の要求履歴分析結果と照らし合わせて、今後の予測要求数として、電車料金計算プログラムの予測要求数を１１０３に、旅費清算プログラムの予測要求数を１１０４に示した。
【００３８】
例えば、処理する時点で、Ｐ００１を要求したクライアント端末の台数は１００台であることが分かる。図１０の要求履歴分析結果１０００を参照すると、次の要求の６７％は電車料金計算プログラムへの要求であり、３３％は旅費清算プログラムへの要求であったことが分かる。同じ割合で今後の要求が到着すると考えて、電車料金計算プログラムの予測要求数１１０３は、６７、旅費清算プログラムの予測要求数１１０４は、３３である。
【００３９】
図１１の最終要求画面１１０１が全体となっているレコードは、他のレコードを合計した値を示している。これにより、今後の予測要求数は、電車料金計算プログラムが１６７件、旅費清算プログラムが２３３件であることがわかる。
今後の要求数の算出処理が完了したら、次にステップＳ１２０４に進む。
【００４０】
ステップＳ１２０４では、ステップＳ１２０３で算出した予測要求数を元に必要なサーバ台数を算出する。ここでは、各サーバの処理能力は、２００件までとする。予測要求数１１００により、今後の予測要求数は、電車料金計算プログラムが１６７件、旅費清算データ登録プログラムが２３３件であるため、電車料金計算プログラムが処理を行うのに必要なサーバ台数は１台であり、旅費清算データ登録プログラムが処理を行うのに必要なサーバ台数は２台と算出し、ステップＳ１２０５に進む。
【００４１】
ステップＳ１２０５では、要求の振分先サーバを決定する。ステップＳ１２０４の結果より、電車料金計算プログラムが処理を行うのに必要なサーバ台数は１台であるため、サーバ１５０を割り当てることとする。旅費清算データ登録プログラムが処理を行うのに必要なサーバ台数は２台と算出したため、これを元に、サーバ１６０、１７０を割り当てることとする。ここで、サーバ１６０とサーバ１７０のどちらに要求を振り分けるかは、乱数を用いても構わないし、前回の要求振分先を記憶しておいて、交互に要求を振り分けることとしても良い。要求の振分先を決定したら、ステップＳ１２０６へ進む。
【００４２】
ステップＳ１２０６では、要求をステップＳ１２０５で決定したサーバに送信し、ステップＳ１２０７に進む。
ステップＳ１２０７では、該当サーバからの返信をクライアントプログラム１１３へ返却して終了する。
【００４３】
図１３は、要求振分プログラムの処理の流れを示した概念図である。このように、要求振分プログラム１２３は、予測要求数に応じて、振分先のサーバを決定する。
【００４４】
以上、本実施形態によれば、適切なサーバ台数を割当可能なサービス提供システムを提供するができる。
【符号の説明】
【００４５】
１１０  クライアント
１１１、１２１、１３１、１４１、１５１、１６１、１７１  ・・・  主記憶装置
１１２、１２２、１３２、１４２、１５２、１６２、１７２  ・・・  ＣＰＵ
１１３  ・・・  クライアントプログラム
１１４  ・・・  入出力装置
１２０、１３０、１４０、１５０、１６０、１７０  ・・・  サーバ
１２３  ・・・  要求振分プログラム
１２４、１３４  ・・・  ディスク装置
１２５  ・・・  要求履歴データ
１３３  ・・・  データベースプログラム
１４３  ・・・  ポータルプログラム
１５３、１６３、１７３  ・・・  電車料金計算プログラム
１５４、１６４、１７４  ・・・  旅費清算データ登録プログラム
【図１】
2011237845.tif 000003
【図２】
2011237845.tif 000004
【図３】
2011237845.tif 000005
【図４】
2011237845.tif 000006
【図５】
2011237845.tif 000007
【図６】
2011237845.tif 000008
【図７】
2011237845.tif 000009
【図８】
2011237845.tif 000010
【図９】
2011237845.tif 000011
【図１０】
2011237845.tif 000012
【図１１】
2011237845.tif 000013
【図１２】
2011237845.tif 000014
【図１３】
2011237845.tif 000015