(57)【要約】【課題】サーバの台数を必要以上に増やすことなく利用者の優先度およびサーバの負荷分散を考慮してサーバへのアクセスの応答時間を短縮するアクセス制御装置を得ること。【解決手段】負荷分散制御部１６１が、クライアントからの要求に含まれるサービス名および利用者ＩＤと、サービス名および利用者ＩＤに関連付けてサーバの負荷分散の優先度を示す負荷分散レベルが登録される負荷分散定義ＤＢ１３と、サービス名および負荷分散レベルに関連付けてアクセスすべきサーバ名が登録されるサービス配備情報ＤＢ１４とに基づき要求されたサービス名および利用者ＩＤの負荷分散レベルに応じてサーバの候補を選択し、サーバ負荷監視部１６３が、サーバの候補の中で最も負荷状況の低いサーバを選択し、このサーバに対応するアクセスキュー１７のキューに要求によるアクセス待ちを登録する。【選択図】        図１
2008262351.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのサービスに関するデータを保持する複数のサーバに接続されるとともに、該サーバにアクセスしてサービスを要求するクライアントとネットワークを介して接続され、前記クライアントから要求されたサービスを提供する複数のサーバの中から１つのサーバを選択し、選択したサーバから要求されたサービスに関するデータを取得して前記クライアントに送信するアクセス制御装置であって、
前記サーバ毎に対応付けられ当該サーバへのアクセス待ちを登録するキューを有するアクセスキューと、
前記サーバが保持するサービス名およびサービスを利用する利用者を識別するための利用者ＩＤに関連付けてサーバへの負荷分散の優先度を示す負荷分散レベルが登録される負荷分散定義データベース、および前記サービス名および前記負荷分散レベルに関連付けてアクセスすべきサーバ名が登録されるサービス配備情報データベースを記憶する記憶手段と、
クライアントから受信したサービス呼び出し要求に含まれるサービス名および利用者ＩＤと、前記記憶手段に記憶された負荷分散定義データベースおよびサービス配備情報データベースとに基づいて、前記クライアントから要求されたサービス名および利用者ＩＤの負荷分散レベルに応じてアクセス可能なサーバの候補を選択する負荷分散制御手段と、
前記負荷分散制御手段によって選択されたサーバの候補の負荷状況に基づいて、最も負荷状況の低いサーバを選択し、選択したサーバに対応するキューに前記サービス呼び出し要求によるアクセス待ちを登録するサーバ負荷監視手段と、
を備えることを特徴とするアクセス制御装置。
【請求項２】
前記記憶手段に記憶された負荷分散定義データベースは、前記負荷分散レベルを有効にする時間帯の情報を有し、
前記負荷分散制御手段は、
現在時刻が前記負荷分散定義データベースに登録された時間帯内である場合に、前記負荷分散レベルを有効とすること、
を特徴とする請求項１に記載のアクセス制御装置。
【請求項３】
前記記憶手段は、サービス名および利用者ＩＤに関連付けて優先度が登録される優先度定義データベースを記憶し、
前記サービス呼び出し要求に含まれるサービス名および利用者ＩＤと前記記憶手段に記憶された前記優先度定義データベースとに基づいて前記サービス名および利用者ＩＤに関連付けられた優先度を取得し、前記キューに登録されたアクセス待ちの中で取得した優先度よりも低い優先度のアクセス待ちの前に前記サービス呼び出し要求によるアクセス待ちを当該キューに挿入する優先度制御手段、
をさらに備えることを特徴とする請求項１または２に記載のアクセス制御装置。
【請求項４】
前記記憶手段に記憶された優先度定義データベースは、優先度を有効とする時間帯の情報を有し、
前記優先度制御手段は、
現在時刻が前記優先度定義データベースに登録された時間帯内である場合に、前記優先度を有効とすること、
を特徴とする請求項３に記載のアクセス制御装置。
【請求項５】
前記優先度制御手段は、
前記キューに登録されたアクセス待ちの中で取得した優先度よりも低い優先度のアクセス待ちが所定の待ち時間を過ぎている場合には取得した優先度よりも優先度が高いと判断すること、
を特徴とする請求項３または４に記載のアクセス制御装置。
【請求項６】
前記記憶手段は、サービス名に関連付けてサービスを提供する際のインタフェースに関する情報が登録されるサービスインタフェース定義データベースを記憶し、
前記クライアントからのサービスインタフェース情報取得要求に含まれるサービス名および前記サービスインタフェース定義データベースに基づいて、要求されたサービスのインタフェースに関する情報をクライアントに通知するサービスインタフェース手段と、
前記アクセスキューの各キューに登録されているアクセス待ちを順に読み出して当該サーバからサービスに必要なデータを取得してクライアントに送信する実サービス呼び出し手段と、
を備えることを特徴とする請求項１〜５の何れか一つに記載のアクセス制御装置。
【請求項７】
前記サーバ負荷監視手段、または前記優先度制御手段は、
前記アクセスキューのキューにアクセス待ちを登録する際に、当該アクセス待ちに関連付けてアクセス情報を登録し、
前記アクセス情報を前記記憶手段にアクセス履歴データベースとして記憶させるアクセス履歴管理手段、
をさらに備えることを特徴とする請求項１〜６の何れか一つに記載のアクセス制御装置。
【請求項８】
前記アクセス情報を、サービス名、利用者ＩＤ、実際に用いた負荷分散レベル、および実際に用いた優先度とし、
前記アクセス履歴管理手段は、
前記サーバにアクセスした日時に対応付けて前記アクセス情報を前記アクセス履歴データベースに登録すること、
を特徴とする請求項７に記載のアクセス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂサービスを提供するサーバへのアクセス制御に関するものであり、特に、サーバの負荷を考慮してサーバへのアクセスを制御するアクセス制御装置に関するものである。
【背景技術】
【０００２】
Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ（以下、単にＷｅｂという）システムや、Ｗｅｂ技術を応用して、各種ソフトウェアの機能をＳＯＡＰ（Simple  Object  Access  Protocol）などによってネットワークを介して利用できるようにしたＷｅｂサービス技術の登場により、情報システムの連携や情報サービスの活用がより広く行われるようになってきている。しかしながら、このような技術を用いたネットワークシステムにおいては、サービスを利用するユーザ数（アクセスユーザ数）が多くなると、サーバへのアクセスが集中してしまい、応答時間が低下してしまうという問題があった。
【０００３】
このような問題を改善するために、従来から種々の技術が考えられている。たとえば、サービスを提供するサーバを複数準備しておき、負荷分散装置を利用して応答時間を短縮する第１の従来技術がある。
【０００４】
また、アクセス時に優先順位を付与することで特定のユーザの処理を優先的に行わせることで応答時間を短縮する第２の従来技術がある（たとえば、特許文献１および２参照）。具体的には、特許文献１に記載の従来技術では、クライアント対応に識別情報と優先度情報を含む属性情報を格納したクライアント情報データベースを設け、要求コマンドがトランザクション終了要求コマンドの時に、クライアント情報データベースを参照して、クライアントの優先度の高い順に要求コマンド群を実行するようにしている。
【０００５】
また、特許文献２に記載の従来技術では、コールバック要求などの特定の操作を行ったユーザのセッションを記憶する手段を設け、当該セッションと一致するＷｅｂデータについては、その送受信を他のセッションよりも優先させるようにしている。
【０００６】
【特許文献１】特開２００１−３１２４２４号公報
【特許文献２】特開２００３−０８７４２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記第１の従来技術では、ユーザ数に応じて多数のサーバを準備する必要があり、ネットワークシステムのコストが高くなってしまうという問題があった。
【０００８】
また、上記第２の従来技術では、サービスを提供するサーバの負荷状況を考慮していないため、多くのユーザからのアクセス要求を受けている場合にはユーザの優先順位を高くしてもサーバの負荷は軽減されることなく高い状態のままとなってしまう。そのため、優先度の高いユーザについてはその応答時間を短縮することはできるが、優先順位の低いユーザについてはその対応時間を短縮することはできないという問題があった。すなわち、上記第２の従来技術では、サーバへのアクセスの応答時間の短縮効果は限定的なものとなってしまうという問題があった。
【０００９】
本発明は、上記に鑑みてなされたものであって、サーバの台数を必要以上に増やすことなく利用者への優先度およびサーバへの負荷分散を考慮してサーバへのアクセスの応答時間を短縮することができるアクセス制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明は、少なくとも１つのサービスに関するデータを保持する複数のサーバに接続されるとともに、該サーバにアクセスしてサービスを要求するクライアントとネットワークを介して接続され、前記クライアントから要求されたサービスを提供する複数のサーバの中から１つのサーバを選択し、選択したサーバから要求されたサービスに関するデータを取得して前記クライアントに送信するアクセス制御装置であって、前記サーバ毎に対応付けられ当該サーバへのアクセス待ちを登録するキューを有するアクセスキューと、前記サーバが保持するサービス名およびサービスを利用する利用者を識別するための利用者ＩＤに関連付けてサーバへの負荷分散の優先度を示す負荷分散レベルが登録される負荷分散定義データベース、および前記サービス名および前記負荷分散レベルに関連付けてアクセスすべきサーバ名が登録されるサービス配備情報データベースを記憶する記憶手段と、クライアントから受信したサービス呼び出し要求に含まれるサービス名および利用者ＩＤと、前記記憶手段に記憶された負荷分散定義データベースおよびサービス配備情報データベースとに基づいて、前記クライアントから要求されたサービス名および利用者ＩＤの負荷分散レベルに応じてアクセス可能なサーバの候補を選択する負荷分散制御手段と、前記負荷分散制御手段によって選択されたサーバの候補の負荷状況に基づいて、最も負荷状況の低いサーバを選択し、選択したサーバに対応するキューに前記サービス呼び出し要求によるアクセス待ちを登録するサーバ負荷監視手段と、を備えることを特徴とする。
【発明の効果】
【００１１】
この発明によれば、負荷分散制御手段が、クライアントから受信したサービス呼び出し要求に含まれるサービス名および利用者ＩＤと、サーバが保持するサービス名およびサービスを利用する利用者を識別するための利用者ＩＤに関連付けてサーバへの負荷分散の優先度を示す負荷分散レベルが登録される負荷分散定義データベースと、サービス名および前記負荷分散レベルに関連付けてアクセスすべきサーバ名が登録されるサービス配備情報データベースとに基づいてクライアントから要求されたサービス名および利用者ＩＤの負荷分散レベルに応じてアクセス可能なサーバの候補を選択し、サーバ負荷監視手段が、負荷分散制御手段によって選択されたサーバの候補の負荷状況に基づいて、最も負荷状況の低いサーバを選択し、選択したサーバに対応するキューに前記サービス呼び出し要求によるアクセス待ちを登録するようにしているため、利用者および利用するサービスに応じてサーバに対する負荷分散を行うことが可能となり、サーバの台数を必要以上に増やすことなく利用者への優先度およびサーバへの負荷分散を考慮してサーバへのアクセスの応答時間を短縮することができるアクセス制御装置を得ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明にかかるアクセス制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１３】
図１〜図９を用いてこの発明におけるアクセス制御装置の実施の形態を説明する。図１は、この発明におけるアクセス制御装置が適用されるネットワークシステムの構成の一例を示す図である。図１において、ネットワークシステムは、１〜複数（この場合は３台）のクライアント３（３−１〜３−３を示す）と、複数（この場合は３台）のサーバ７（７−１〜７−３を示す）と接続されたアクセス制御装置１とが、たとえば、インターネットなどのネットワーク５によって接続されている。
【００１４】
サーバ７は、提供するサービスに関する情報を保持しており、アクセス制御装置１からの要求によって所定のサービス情報を提供する。図１においては、サーバ７−１，７−２はサービス１，２を保持しており、サーバ７−３はサービス１を保持している。
【００１５】
アクセス制御装置１は、サービスインタフェース定義ＤＢ１１、サービスインタフェース部１２、負荷分散定義ＤＢ１３、サービス配備情報ＤＢ１４、優先度定義ＤＢ１５、負荷分散制御部１６１と優先度制御部１６２とサーバ負荷監視部１６３とを有するアクセス制御部１６、アクセスキュー１７、実サービス呼び出し部１８、アクセス履歴管理部１９、およびアクセス履歴ＤＢ２０を備えている。なお、サービスインタフェース定義ＤＢ１１、負荷分散定義ＤＢ１３、サービス配備情報ＤＢ１４、優先度定義ＤＢ１５、およびアクセス履歴ＤＢ２０は、図示しない記憶手段に記憶される。
【００１６】
サービスインタフェース定義ＤＢ１１には、クライアント３に提供するＷｅｂサービスのインタフェースに関する情報が登録される。図２は、サービスインタフェース定義ＤＢ１１に登録される登録項目を示す図である。図２においては、サービスインタフェース定義ＤＢ１１の登録項目として、サービス名と、このサービス名に関連付けられたサービスＵＲＬ（Uniform  Resource  Locator）およびインタフェース定義ファイル名とを挙げている。
【００１７】
サービス名には、提供するサービスの名称が登録される。サービスＵＲＬにはサービス名に登録されたサービスのデータが格納されるＵＲＬが登録される。インタフェース定義ファイル名には、サービス名が示すサービスのインタフェース情報の定義が詳細に記載されたインタフェース定義ファイルのファイル名が登録される。インタフェース定義ファイルは、たとえば、ＷＳＤＬ（Web  Services  Description  Language）などで書式や検索情報に使用される項目などが記載され、アクセス制御装置１内の図示しない記憶手段やアクセス制御装置１が接続可能な記憶装置内に格納されている。
【００１８】
図１に戻って、サービスインタフェース部１２は、ネットワーク５を介してクライアント３と通信を行うインタフェース機能を有し、クライアント３との通信を行う。また、クライアント３からの要求、およびサービスインタフェース定義ＤＢ１１に基づいて提供する（クライアント３から要求された）サービスのサービスインタフェース情報を生成し、生成したサービスインタフェース情報をクライアント３に送信する。
【００１９】
負荷分散定義ＤＢ１３には、利用者に対するサーバ７の負荷分散レベルの情報が登録される。図３は、負荷分散定義ＤＢ１３に登録される登録項目を示す図である。図３においては、負荷分散定義ＤＢ１３に登録される登録項目として、サービス名、利用者ＩＤ、時間帯、および負荷分散レベルを挙げている。
【００２０】
サービス名には、提供するサービスの名称が登録される。利用者ＩＤには、サービス名に登録されたサービスを提供する利用者を識別するために利用者に予め付与された識別子（利用者ＩＤ）が登録される。時間帯には、サービスを提供する負荷分散レベルを有効とする時間帯が登録される。負荷分散レベルには、サービス名に登録されたサービスを利用者ＩＤに登録された利用者が利用する際の負荷分散レベルが登録される。
【００２１】
図１に戻って、サービス配備情報ＤＢ１４には、実際にサービスを保持しているサーバ７に関する情報が登録される。図４は、サービス配備情報ＤＢ１４に登録される登録項目を示す図である。図４においては、サービス配備情報ＤＢ１４の登録項目として、サービス名、負荷分散レベル、および実サーバ名を挙げている。サービス名には、提供するサービスの名称が登録される。負荷分散レベルには、サービス名に登録されたサービスにおける負荷分散レベルが登録される。実サーバ名には、サービス名に登録されたサービスを負荷分散レベルに登録された負荷分散レベルで選択可能なサーバ７の名前（識別子）が登録される。
【００２２】
図１に戻って、優先度定義ＤＢ１５には、サービスに関する優先度に関する情報が登録される。図５は、優先度定義ＤＢ１５に登録される登録項目を示す図である。図５においては、優先度定義ＤＢ１５に登録される登録項目として、サービス名、利用者ＩＤ、時間帯、および優先度を挙げている。サービス名には、提供するサービスの名称が登録される。利用者ＩＤには、サービス名に登録されたサービスを提供する利用者を識別するために利用者に予め付与された利用者ＩＤが登録される。時間帯には、優先度を有効とする時間帯が登録される。優先度には、利用者ＩＤに登録された利用者がサービス名に登録されたサービスを利用する際の優先度が登録される。ここでは、優先度「１」が最も優先度が高く、優先度「２」が優先度「１」のつぎに優先度が高いものとする。
【００２３】
アクセス制御部１６は、負荷分散定義ＤＢ１３、サービス配備情報ＤＢ１４、優先度定義ＤＢ１５、およびサーバ７の負荷状況に基づいて、クライアント３から要求されたサービスの優先度を判定し、判定した優先度に基づいてアクセスするサーバ７を選択する。アクセス制御部１６は、選択したサーバ７に応じてアクセスキュー１７の所定の位置にジョブ（アクセス要求）を設定する。
【００２４】
アクセス制御部１６は、負荷分散制御部１６１、優先度制御部１６２、およびサーバ負荷監視部１６３を備えている。負荷分散制御部１６１は、負荷分散定義ＤＢ１３およびサービス配備情報ＤＢ１４に基づいてクライアント３から要求されたサービスを保持しているサーバ７の中から、アクセス可能なサーバ７の候補を選択する。
【００２５】
サーバ負荷監視部１６３は、サーバ７の負荷状況を監視し、監視結果に基づいて負荷分散制御部１６１によって選択されたアクセス可能なサーバ７の後方の中からアクセスするサーバ７を選択する。優先度制御部１６２は、優先度定義ＤＢ１５およびアクセスキュー１７に保持されているジョブの優先度に基づいてサーバ負荷監視部１６３によって選択されたサーバ７に応じてアクセスキュー１７の所定の位置にジョブを設定する。
【００２６】
アクセスキュー１７は、サーバ７毎に対応付けられたキューを有し、当該サーバ７にアクセスすべきジョブを保持する。図１においては、アクセスキュー１７は、サーバ７−１に対応付けられたキューと、サーバ７−２に対応付けられたキューと、サーバ７−３に対応付けられたキューとを有する。そして、各キューには、優先度制御部１６２によってジョブを識別するために付与されるアクセスＩＤが登録され、このアクセスＩＤに関連づけてアクセス情報が登録される。ここで、アクセス情報とは、優先度、利用者ＩＤ、アクセスすべきサービス名、サービスＵＲＬ、アクセスキュー１７への登録日時、予め定められた待ち時間の上限値を含むアクセスＩＤが示すジョブに関する各種情報のことである。
【００２７】
実サービス呼び出し部１８は、サーバ７とのインタフェースを有し、アクセスキュー１７に登録されているアクセスＩＤと当該アクセスＩＤに関連付けられたアクセス情報に基づいてサーバ７にアクセスして実際のサービスを提供するデータを取得し、取得したデータをアクセス制御部１６およびサービスインタフェース部１２を介してクライアント３に送信する。
【００２８】
アクセス履歴管理部１９は、サーバ７が保持するサービスへのアクセス履歴情報をアクセス履歴ＤＢ２０に登録してアクセス履歴情報を管理する。図６は、アクセス履歴ＤＢ２０に登録される登録項目の一例を示す図である。図６においては、アクセス履歴ＤＢ２０の登録項目として、アクセス日時、サービス名、利用者ＩＤ、実施優先度、および利用負荷分散レベルを挙げている。
【００２９】
アクセス日時には、サーバ７にアクセスした日時が登録される。なお、アクセス日時は、クライアント３からの要求を受け付けた日時としてもかまわない。サービス名には、利用した（アクセスした）サービスの名称が登録される。利用者ＩＤには、アクセス日時に登録された日時にサービス名に登録されたサービスを利用した利用者を識別するための利用者ＩＤが登録される。実施優先度には、実際にサーバ７にアクセスした際に利用した優先度が登録される。利用負荷分散レベルには、実際にサーバ７にアクセスした際に利用した負荷分散レベルが登録される。
【００３０】
つぎに、図７のシーケンス図を参照して、本発明にかかるアクセス制御装置１が適用されるネットワークシステムの動作を説明する。利用者は、所望のサービスを受けるためにサービス名を含む情報をクライアント３に入力する。
【００３１】
クライアント３は、利用者ＩＤおよびサービス名を含むサービスインタフェース情報取得要求を生成する（ステップＳ１００）。クライアント３は、生成したサービスインタフェース情報取得要求をアクセス制御装置１に送信する（ステップＳ１０１）。
【００３２】
アクセス制御装置１は、クライアント３から受信したサービスインタフェース情報取得要求およびサービスインタフェース定義ＤＢ１１に基づいて、要求されたサービスを受ける際に必要なサービスインタフェース情報を取得するサービスインタフェース情報取得処理を実行する（ステップＳ１０２）。
【００３３】
図８のフローチャートを参照して、アクセス制御装置１が実行するサービスインタフェース情報取得処理の動作を詳細に説明する。サービスインタフェース部１２は、受信したサービスインタフェース情報取得要求からサービス名を抽出する（ステップＳ２００）。
【００３４】
サービスインタフェース部１２は、サービス名およびサービスインタフェース定義ＤＢ１１に基づいてサービスＵＲＬおよびインタフェース定義ファイル名を取得する（ステップＳ２０１）。具体的には、サービスインタフェース部１２は、抽出したサービス名を検索キーとしてサービスインタフェース定義ＤＢ１１のサービス名を検索キーとして、検索キーと一致するサービス名に関連づけてサービスインタフェース定義ＤＢ１１のサービスＵＲＬおよびインタフェース定義ファイル名に登録されているサービスＵＲＬおよびインタフェース定義ファイル名を取得する。
【００３５】
サービスインタフェース部１２は、図示しない記憶手段またはアクセス制御装置１が接続可能な記憶装置から取得したインタフェース定義ファイル名が示すファイルを取得する（ステップＳ２０２）。サービスインタフェース部１２は、取得したファイルおよびサービスＵＲＬに基づいて、取得したファイル（インタフェース定義ファイル）からアクセスに必要な情報（書式や検索情報に使用される項目など）およびサービスＵＲＬを含むサービスインタフェース情報を生成する（ステップＳ２０３）。なお、サービスインタフェース情報に取得したインタフェース定義ファイルそのものを含めるようにしてもよい。サービスインタフェース部１２は、生成したサービスインタフェース情報を含むサービスインタフェース情報取得応答を生成して（ステップＳ２０４）アクセス情報取得処理を終了する。
【００３６】
図７に戻って、アクセス制御装置１のサービスインタフェース部１２は、サービスインタフェース情報取得処理によって生成したサービスインタフェース情報取得応答を利用者ＩＤが示すクライアント３に送信する（ステップＳ１０３）。
【００３７】
クライアント３は、受信したサービスインタフェース情報応答からアクセスに必要な情報およびサービスＵＲＬを抽出する。クライアント３は、アクセスに必要な情報に基づいてサービスの提供を受ける環境を整えるとともに、利用者ＩＤ、サービス名およびサービスＵＲＬを含むサービス読み出し要求を生成する（ステップＳ１０４）。クライアント３は、生成したサービス読み出し要求をアクセス制御装置１に送信する（ステップＳ１０５）。
【００３８】
アクセス制御装置１は、クライアント３から受信したサービス読み出し要求、負荷分散定義ＤＢ１３、サービス配備情報ＤＢ１４、および優先度定義ＤＢ１５に基づいて、サービス読み出し要求によって要求されたサービスを保持するサーバ７にアクセスするためのアクセス制御処理を実行する（ステップＳ１０６）。
【００３９】
図９のフローチャートを参照して、アクセス制御装置１が実行するアクセス制御処理の詳細な動作について説明する。アクセス制御装置１の負荷分散制御部１６１は、サービスインタフェース部１２を介してクライアント３から受信したサービス読み出し要求からサービス名、サービスＵＲＬ、および利用者ＩＤを抽出する（ステップＳ３００）。
【００４０】
負荷分散制御部１６１は、抽出したサービス名および利用者ＩＤと、現在時刻とに基づいて負荷分散定義ＤＢ１３から負荷分散レベルを取得する（ステップＳ３０１）。具体的には、負荷分散制御部１６１は、抽出したサービス名および利用者ＩＤの組を検索キーとして負荷分散定義ＤＢ１３のサービス名および利用者ＩＤを検索して、検索キーと一致するサービス名および利用者ＩＤの組を抽出する。負荷分散制御部１６１は、抽出した組に関連付けて負荷分散定義ＤＢ１３の時間帯および負荷分散レベルに登録されている時間帯および負荷分散レベルを取得する。
【００４１】
図３に示した負荷分散定義ＤＢ１３の利用者ＩＤには「ユーザ１」、「ユーザ２」、「ユーザ３」および「＊」が登録されている。ここで「＊」はすべての利用者を示している。ここで、利用者ＩＤ「ユーザ１」に着目すると、負荷分散制御部１６１は、サービス名「サービス１」であった場合には時間帯「０：００−２４：００」および負荷分散レベル「２」を取得し、サービス名「サービス２」であった場合には時間帯「８：００−２０：００」および負荷分散レベル「２」と、時間帯「２０：００−８：００」および負荷分散レベル「１」とを取得する。
【００４２】
負荷分散制御部１６１は、取得した時間帯および負荷分散レベルと現在時刻とに基づいて負荷分散レベルを選択する。たとえば、ユーザＩＤ「ユーザ１」およびサービス名「サービス１」を検索キーとした場合には時間帯は「０：００−２４：００」であるので、現在時刻に依存することなく負荷分散レベル「２」を選択する。また、ユーザＩＤ「ユーザ１」およびサービス名「サービス２」を検索キーとした場合には、現在時刻が「８：００」以降「２０：００」以前であればこの時間帯に対応付けられている負荷分散レベル「２」を選択し、現在時刻が「２０：００」以降「８：００」以前であればこの時間帯に対応付けられている負荷分散レベル「１」を選択する。なお、現在時刻については、アクセス制御装置１内の図示しない計時機能から取得するものとする。
【００４３】
負荷分散制御部１６１は、サービス名および選択した負荷分散レベルに基づいてサービス配備情報ＤＢ１４から実サーバ名を取得する（ステップＳ３０２）。具体的には、負荷分散制御部１６１は、サービス名および選択した負荷分散レベルの組を検索キーとしてサービス配備情報ＤＢ１４のサービス名および負荷分散レベルを検索して、検索キーと一致するサービス名および負荷分散レベルに関連づけられてサービス配備情報ＤＢ１４に登録されている実サーバ名を取得する。
【００４４】
具体的には、サービス名「サービス１」および負荷分散レベル「１」を検索キーとした場合、負荷分散制御部１６１は、サービス名「サービス１」および負荷分散レベル「１」に関連づけられてサービス配備情報ＤＢ１４の実サーバ名に登録されているサーバ７−１を示すサーバ名「サーバ＃１」を取得する。また、サービス名「サービス１」および負荷分散レベル「２」を検索キーとした場合、負荷分散制御部１６１は、サービス名「サービス１」および負荷分散レベル「１」に関連づけられてサービス配備情報ＤＢ１４の実サーバ名に登録されているサーバ７−１を示すサーバ名「サーバ＃１」と、サービス名「サービス１」および負荷分散レベル「２」に関連づけられてサービス配備情報ＤＢ１４の実サーバ名に登録されているサーバ７−２を示すサーバ名「サーバ＃２」とを取得する。すなわち、負荷分散制御部１６１は、負荷分散定義ＤＢ１３から選択した負荷分散レベルの値以下の負荷分散レベルとサービス名との組に関連付けられた実サーバ名すべてをサービス配備情報ＤＢ１４から取得する。これにより、負荷分散レベルが高いほど（ここでは、負荷分散レベルの値が大きいほど）アクセスすべきサーバ７の候補となる台数が多くなり、優先度が高くなる。負荷分散制御部１６１は、サービス名、サービスＵＲＬ、利用者ＩＤ、および取得した実サーバ名をサーバ負荷監視部１６３に通知する。
【００４５】
サーバ負荷監視部１６３は、通知された実サーバ名が複数であるか否か、すなわち負荷分散制御部１６１によって取得された実サーバ名が複数であるか否かを判定する（ステップＳ３０３）。実サーバ名が複数である場合（ステップＳ３０３，Ｙｅｓ）、サーバ負荷監視部１６３は、実サーバ名が示す各サーバ７の負荷状況を確認する（ステップＳ３０４）。サーバ７の負荷状況は、たとえば、サーバ７へのアクセス数やＣＰＵ稼働率、アクセスキュー１７の当該サーバ７に対応するキューの状態などによって確認する。
【００４６】
サーバ負荷監視部１６３は、確認したサーバ７の負荷状況に基づいて、最も負荷の低いサーバ７を選択する（ステップＳ３０５）。すなわち、負荷分散制御部１６１によって選択された候補となるサーバ７の中から最も負荷の低いサーバ７をアクセスすべきサーバ７として選択する。サーバ負荷監視部１６３は、サービス名、サービスＵＲＬ、利用者ＩＤ、および選択したサーバ７を示すサーバ名を優先度制御部１６２に通知する。
【００４７】
一方、負荷分散制御部１６１から通知された実サーバ名が１つである場合、すなわち負荷分散制御部１６１によって１つのサーバ７しか選択されなかった場合（ステップＳ３０３，Ｎｏ）、サーバ負荷監視部１６３は、通知されたサーバ７の負荷に依存することなく通知されたサーバ７をアクセスすべきサーバ７として選択する。サーバ負荷監視部１６３は、サービス名、サービスＵＲＬ、利用者ＩＤ、および選択したサーバ７を示すサーバ名を優先度制御部１６２に通知する。
【００４８】
優先度制御部１６２は、通知されたサービス名、利用者ＩＤ、および現在時刻に基づいて優先度定義ＤＢ１５から優先度を取得する（ステップＳ３０６）。具体的には、通知されたサービス名および利用者ＩＤの組を検索キーとして優先度定義ＤＢ１５のサービス名および利用者ＩＤを検索して、検索キーと一致するサービス名および利用者ＩＤに関連付けて優先度定義ＤＢ１５に登録されている時間帯および優先度を取得する。
【００４９】
優先度制御部１６２は、取得した時間帯および優先度と現在時刻とに基づいて優先度を選択する。図５に示した優先度定義ＤＢ１５では、サービス名「サービス１」であって利用者ＩＤ「ユーザ１」の場合、サービス名「サービス１」であって利用者ＩＤ「ユーザ２」の場合、およびサービス名「サービス１」であって利用者ＩＤ「ユーザ３」の場合は、それぞれ時間帯「０：００−２４：００」となっている。よって、優先度制御部１６２は、現在時刻に依存することなくサービス名および利用者ＩＤに関連付けられて優先度定義ＤＢ１５に登録されている優先度を選択する。ここで、現在時刻が取得した時間帯以外であった場合や、サービス名および利用者ＩＤに関連付けられた時間帯および優先度が存在しない場合、優先度制御部１６２は最も低い優先度の値（ここでは、優先度「１」）を選択する。
【００５０】
優先度制御部１６２は、選択した優先度に応じたアクセスキュー１７のキュー位置にジョブを挿入する（ステップＳ３０７）。具体的には、優先度制御部１６２は、たとえば、サーバ負荷監視部１６３から通知された実サーバ名がサーバ７−１を示す場合には、サーバ７−１に対応するアクセスキュー１７のキューを選択する。優先度制御部１６２は、選択したキューが保持しているアクセスＩＤの中から最初に実行されるアクセスＩＤに関連付けられているアクセス情報の優先度、登録日時、および待ち時間を取得する。優先度制御部１６２は、取得した優先度と選択した優先度（キューに挿入するジョブの優先度）とを比較する。選択した優先度が取得した優先度よりも優先度が高い場合、優先度制御部１６２は、登録日時に待ち時間を加算した時刻と現在時刻とを比較する。登録日時に待ち時間を加算した時刻が現在時刻以前の場合、優先度制御部１６２は、最初に実行されるアクセスＩＤおよびこのアクセスＩＤに後続して対象となるキューの順番を１ずつ後ろにずらしてキューの先頭に新たなアクセスＩＤを登録するとともに、このアクセスＩＤに関連付けてサーバ負荷監視部１６３から通知された優先度、利用者ＩＤ、サービス名、およびサービスＵＲＬと、現在日時（アクセスキュー１７への登録日時）と、予め定められた待ち時間の上限値、すなわちアクセス情報を登録する。
【００５１】
一方、選択した優先度が取得した優先度以下の場合、または選択した優先度が取得した優先度より優先度が高くてかつ登録日時に待ち時間を加算した時刻が現在時刻を過ぎている場合、優先度制御部１６２は、比較した優先度のつぎにキューが保持しているアクセスＩＤに関連付けられているアクセス情報の優先度、登録日時、および待ち時間を取得し、取得した優先度と選択した優先度とを比較し、選択した優先度が取得した優先度よりも大きくてかつ登録日時に待ち時間を加算した時刻が現在時刻以前となるアクセスＩＤを検索する動作を繰り返して、選択した優先度よりも優先度が低くかつキューに登録されてから待ち時間を経過していないジョブの前に新たに登録すべきジョブをキューに挿入する。これにより、クライアント３からのサービス呼び出し要求に対するアクセスキュー１７へのアクセス制御処理が完了する。
【００５２】
図７に戻って、アクセス制御装置１はサーバ７に実サービス呼び出し要求を送信する（ステップＳ１０７）。具体的には、アクセス制御装置１の実サービス呼び出し部１８は、サーバ７に対応するアクセスキュー１７のキューの先頭に登録されているアクセスＩＤを取得し、取得したアクセスＩＤに関連付けられているアクセス情報のサービスＵＲＬに基づいて当該サーバ７に対して実サービス呼び出し要求を送信する。
【００５３】
実サービス呼び出し要求を受信したサーバ７は、要求された実サービスのデータ（結果）を取得する（ステップＳ１０８）。サーバ７は、取得したデータ（結果）を含む実サービス呼び出し応答を生成し、生成した実サービス呼び出し応答をアクセス制御装置１に送信する（ステップＳ１０９）。
【００５４】
実サービス呼び出し部１８は、サーバ７から受信した実サービス呼び出し応答とこの実サービス呼び出し応答に対するアクセスＩＤに関連付けられたアクセス情報の利用者ＩＤとをアクセス制御部１６を介してサービスインタフェース部１２に通知する。また、実サービス呼び出し部１８は、サーバ７から受信した実サービス呼び出し応答に対するアクセスＩＤに関連付けられたアクセス情報をアクセス制御部１６を介してアクセス履歴管理部１９に出力する。実サービス呼び出し応答を送信したサーバ７に対応付けられたアクセスキュー１７のキューからつぎに実行すべきジョブのアクセスＩＤを取得して取得したアクセスＩＤに関連付けられているアクセス情報のサービスＵＲＬに基づいて当該サーバ７に対して実サービス呼び出し要求を送信する。
【００５５】
一方、アクセス履歴管理部１９は、アクセス制御部１６を介して通知されたアクセス情報に基づいてアクセス履歴情報をアクセス履歴ＤＢ２０に登録する履歴情報処理を実行する（ステップＳ１１０）。具体的には、アクセス履歴管理部１９は、現在時刻を取得し、取得した現在時刻をアクセス履歴ＤＢ２０のアクセス日時に登録する。アクセス履歴管理部１９は、登録したアクセス日時に関連付けてアクセス履歴ＤＢ２０のサービス名、利用者ＩＤ、実施優先度、および利用負荷分散レベルに、アクセス情報のサービス名、利用者ＩＤ、優先度、および負荷分散レベルを登録する。
【００５６】
サービスインタフェース部１２は、アクセス制御部１６を介して通知された利用者ＩＤに基づいて実サービス呼び出し応答の結果を含むサービス呼び出し応答を生成し、生成したサービス呼び出し応答を利用者ＩＤが示すクライアント３に送信する（ステップＳ１１１）。
【００５７】
なお、この実施の形態においては、優先度制御部１６２が、優先度に基づいてアクセスキュー１７のキューにアクセスＩＤを登録するようにしたが、優先度定義ＤＢ１５を用いることなく、負荷分散制御部１６１が選択したアクセス可能なサーバ７の候補の中からサーバ負荷監視部１６３が負荷状況によって選択したサーバ７に対応するアクセスキュー１７のキューに選択した順番にアクセスＩＤを登録するようにしてもよい。
【００５８】
このように、この実施の形態においては、負荷分散制御部１６１が、クライアントから受信したサービス呼び出し要求に含まれるサービス名および利用者ＩＤと、サーバが保持するサービス名およびサービスを利用する利用者を識別するための利用者ＩＤに関連付けてサーバへの負荷分散の優先度を示す負荷分散レベルが登録される負荷分散定義ＤＢ１３と、サービス名および負荷分散レベルに関連付けてアクセスすべきサーバ名が登録されるサービス配備情報ＤＢ１４とに基づいてクライアントから要求されたサービス名および利用者ＩＤの負荷分散レベルに応じてアクセス可能なサーバの候補を選択し、サーバ負荷監視部１６３が、負荷分散制御部１６１によって選択されたサーバの候補の負荷状況に基づいて、最も負荷状況の低いサーバを選択し、選択したサーバに対応するアクセスキュー１７のキューにサービス呼び出し要求によるアクセス待ちを登録するようにしているため、利用者および利用するサービスに応じてサーバに対する負荷分散を行うことが可能となり、サーバの台数を必要以上に増やすことなく利用者への優先度およびサーバへの負荷分散を考慮してサーバ７へのアクセスの応答時間を短縮することができる。
【００５９】
また、この実施の形態においては、負荷分散定義ＤＢ１３に負荷分散レベルを有効にする時間帯の情報を有し、負荷分散制御部１６１は、現在時刻が負荷分散定義ＤＢ１３に登録された時間帯内である場合に負荷分散レベルを有効にするようにしているため、利用者および利用するサービスだけでなく、時間帯によって優先度による負荷分散制御を行うことが可能となり、詳細なアクセス制御を行うことができる。
【００６０】
さらに、この実施の形態においては、優先度制御部１６２が、サービス名および利用者ＩＤに関連付けて優先度が登録される優先度定義ＤＢ１５と、サービス呼び出し要求に含まれるサービス名および利用者ＩＤとに基づいて、サービス呼び出し要求に含まれるサービス名および利用者ＩＤの優先度を取得し、アクセスキュー１７のキューに登録されたアクセス待ちの中で取得した優先度よりも低い優先度のアクセス待ちの前にサービス呼び出し要求によるアクセス待ちを挿入するようにしているため、アクセスすべきサーバ７毎の優先度制御を行うことが可能となり、サーバ７へのアクセスの応答時間を短縮することができる。
【００６１】
さらにまた、この実施の形態においては、優先度定義ＤＢ１５に優先度を有効にする時間帯の情報を有し、優先度制御部１６２は、現在時間が優先度定義ＤＢ１５に登録された時間帯内である場合に優先度を有効にするようにしているため、利用者および利用するサービスだけでなく、時間他によってアクセスすべきサーバ７毎の優先度制御を行うことが可能となり、詳細なアクセス制御を行うことができる。
【００６２】
また、この実施の形態においては、優先度制御部１６２は、アクセスキュー１７のキューに登録されたアクセス待ちの中で取得した優先度よりも低い優先度のアクセス待ちが所定の待ち時間を過ぎている場合には取得した優先度よりも優先度が高いと判定するようにしているため、一定期間を過ぎた場合には優先度が低くても待ち状態を遅らせることがなくなり必要以上にサーバ７へのアクセスの応答時間を長くすることを防止することができる。
【００６３】
さらに、この実施の形態においては、サービス名に関連付けてサービスを提供する際のインタフェースに関する情報が登録されるサービスインタフェース定義ＤＢ１１を有し、サービスインタフェース部１２が、クライアントからのサービスインタフェース情報取得要求に含まれるサービス名およびサービスインタフェース定義ＤＢ１１に基づいて、要求されたサービスのインタフェースに関する情報をクライアントに通知し、実サービス呼び出し部１８が、アクセスキュー１７の各キューに登録されているアクセス待ちを順に読み出して当該サーバ７からサービスに必要なデータを取得してクライアント３に送信するようにしているため、クライアント３のアクセスするサーバ７と、実際にサービスを提供するサーバ７とを分離し、動作時に任意のサーバ７に振り分けることで負荷分散によるアクセス制御を可能とし、サーバ７へのアクセスの応答時間を短縮することができる。
【００６４】
また、この実施の形態においては、優先度制御手段が、サービス名、利用者ＩＤ、実際に用いた負荷分散レベル、および実際に用いた優先度をアクセス情報としてアクセスＩＤに関連付けて登録しておき、アクセス履歴管理部１９が、サーバ７にアクセスした日時に対応づけて当該アクセス情報をアクセス履歴ＤＢ２０に登録するようにしているため、サービス呼び出し実施の情報と、その際に利用した負荷分散レベルおよび優先度の情報などの履歴を管理することが可能となり、課金管理などを容易にすることができる。
【産業上の利用可能性】
【００６５】
以上のように、本発明にかかるアクセス制御装置は、Ｗｅｂサービスを提供するサーバへのアクセス制御に有用であり、特に、サービスを利用するユーザ数が多いシステムに適している。
【図面の簡単な説明】
【００６６】
【図１】この発明におけるアクセス制御装置が適用されるネットワークシステムの構成の一例を示す図である。
【図２】図１に示したサービスインタフェース定義ＤＢに登録される登録項目を示す図である。
【図３】図１に示した負荷分散定義ＤＢに登録される登録項目を示す図である。
【図４】図１に示したサービス配備情報ＤＢに登録される登録項目を示す図である。
【図５】図１に示した優先度定義ＤＢに登録される登録項目を示す図である。
【図６】図１に示したアクセス履歴ＤＢに登録される登録項目を示す図である。
【図７】この発明におけるアクセス制御装置が適用されるネットワークシステムの動作を説明するためのシーケンス図である。
【図８】アクセス制御装置が実行するサービスインタフェース情報取得処理の詳細な動作を説明するためのフローチャートである。
【図９】アクセス制御装置が実行するアクセス制御処理の詳細な動作を説明するためのフローチャートである。
【符号の説明】
【００６７】
１  アクセス制御装置
３−１，３−２，３−３  クライアント
５  ネットワーク
７−１，７−２，７−３  サーバ
１１  サービスインタフェース定義ＤＢ
１２  サービスインタフェース部
１３  負荷分散定義ＤＢ
１４  サービス配備情報ＤＢ
１５  優先度定義ＤＢ
１６  アクセス制御部
１７  アクセスキュー
１８  実サービス呼び出し部
１６１  負荷分散制御部
１６２  優先度制御部
１６３  サーバ負荷監視部
【図１】
2008262351.tif 000003
【図２】
2008262351.tif 000004
【図３】
2008262351.tif 000005
【図４】
2008262351.tif 000006
【図５】
2008262351.tif 000007
【図６】
2008262351.tif 000008
【図７】
2008262351.tif 000009
【図８】
2008262351.tif 000010
【図９】
2008262351.tif 000011