(57)【要約】【課題】サーバとデータベースとの間が密接に結合している場合でも、アプリケーションを変更することなくデータベースシステム間の負荷分散を実現する。【解決手段】各データベースシステムＤａ，Ｄｂと利用者端末ＴＭ１〜ＴＭｎとの間に負荷分散制御サーバＣＳＶ１を配置し、この負荷分散制御サーバＣＳＶ１において、設定情報記憶部１１に予め記憶したアクセスの振り分け条件を読み出してアクセス先固定機能１３に設定する。この状態で利用者端末ＴＭ１〜ＴＭｎからアクセス要求が到来した場合に、このアクセス要求の内容と上記設定された振り分け条件とに基づいて、アクセス先のデータベースシステムＤａ又はＤｂを固定的に設定する。そして、この設定されたデータベースシステムＤａ又はＤｂに対し問い合わせ機能１５からアクセスし、データベースシステムＤａ又はＤｂに上記アクセス要求の内容に応じた処理を実行させる。【選択図】    図２
2004246778.tif 000002
【特許請求の範囲】
【請求項１】
サーバとデータベースとが密接に結合する複数のデータベースシステム間の負荷を分散する方法であって、
前記各データベースシステムに対するアクセスの振り分け条件を、可変可能な状態で事前に設定する過程と、
前記データベースシステムに対するアクセス要求が発生した場合に、当該アクセス要求の内容と前記設定された振り分け条件とに基づいて、アクセス先のデータベースシステムを固定的に設定する過程と、
前記固定的に設定されたアクセス先のデータベースシステムに対しアクセスして、前記アクセス要求の内容に応じた処理を実行させる過程と
を備えることを特徴とするデータベースシステムの負荷分散方法。
【請求項２】
前記データベースシステムに対するアクセスに先立ち、前記アクセス要求の内容をもとに、前記データベースシステムに対し同時に複数の処理を行わせた場合にデータベースシステム間で不整合が発生する可能性があるか否かを判定する過程と、
前記不整合が発生する可能性がある場合に、前記複数の処理が択一的に実行されるように前記データベースシステムに対するアクセスを制御する過程と
を、さらに備えることを特徴とする請求項１記載のデータベースシステムの負荷分散方法。
【請求項３】
前記固定的に設定されたアクセス先のデータベースシステムが複数ある場合に、これら複数のデータベースシステムからそれぞれ読み出された情報データを一組の応答情報データに編集する過程と、
前記編集された応答情報データをアクセス要求元へ送信する過程と
を、さらに備えることを特徴とする請求項１又は２記載のデータベースシステムの負荷分散方法。
【請求項４】
サーバとデータベースとが密接に結合する複数のデータベースシステムと、アクセス要求を送信する端末との間に介在し、前記データベースシステムに対する前記端末からのアクセス要求の振り分けを行う負荷分散制御装置であって、
前記各データベースシステムに対するアクセスの振り分け条件を、可変設定可能な状態で記憶する記憶手段と、
前記端末から送信される前記アクセス要求を受信する受信手段と、
前記受信手段により受信されたアクセス要求の内容と、前記記憶手段に記憶された振り分け条件とに基づいて、アクセス先のデータベースシステムを固定的に設定するアクセス先設定手段と、
前記アクセス先設定手段により固定的に設定されたアクセス先のデータベースシステムに対しアクセスして、前記アクセス要求の内容に応じた処理を実行させる実行制御手段と
を具備することを特徴とする負荷分散制御装置。
【請求項５】
前記データベースシステムに対するアクセスに先立ち、前記アクセス要求の内容をもとに、前記データベースシステムに対し同時に複数の処理を行わせた場合にデータベースシステム間で不整合が発生する可能性があるか否かを判定する判定手段と、
前記判定手段により不整合が発生する可能性があると判定された場合に、前記複数の処理が択一的に実行されるように前記実行制御手段によるアクセスを制御する排他制御手段と
を、さらに具備することを特徴とする請求項４記載の負荷分散制御装置。
【請求項６】
前記アクセス先設定手段により設定されたアクセス先のデータベースシステムが複数ある場合に、前記アクセス要求の内容に応じた処理により前記複数のデータベースシステムからそれぞれ読み出された情報データを一組の応答情報データに編集する編集手段と、
前記編集手段により編集された応答情報データをアクセス要求元の端末へ送信する送信手段と
を、さらに具備することを特徴とする請求項４又は５記載の負荷分散制御装置。
【請求項７】
サーバとデータベースとが密接に結合する複数のデータベースシステムと、アクセス要求を送信する端末との間に介在し、前記データベースシステムに対する前記端末からのアクセス要求の振り分けをコンピュータにより制御する負荷分散制御装置で使用される制御プログラムであって、
前記各データベースシステムに対するアクセスの振り分け条件を、事前に可変可能な状態で設定する処理と、
前記端末から送信される前記アクセス要求を受信する処理と、
前記受信されたアクセス要求の内容と、前記設定された振り分け条件とに基づいて、アクセス先のデータベースシステムを固定的に設定する処理と、
前記固定的に設定されたアクセス先のデータベースシステムに対しアクセスして、前記アクセス要求の内容に応じた処理を実行させる処理と
を、さらに前記コンピュータに実行させる制御プログラム。
【請求項８】
前記データベースシステムに対するアクセスに先立ち、前記アクセス要求の内容をもとに、前記データベースシステムに対し同時に複数の処理を行わせた場合にデータベースシステム間で不整合が発生する可能性があるか否かを判定する処理と、
不整合が発生する可能性があると判定された場合に、前記複数の処理が択一的に実行されるように前記データベースシステムに対するアクセスを制御する処理と
を、さらに前記コンピュータに実行させる請求項７記載の制御プログラム。
【請求項９】
前記固定的に設定されたアクセス先のデータベースシステムが複数ある場合に、前記アクセス要求の内容に応じた処理により前記複数のデータベースシステムからそれぞれ読み出された情報データを一組の応答情報データに編集する処理と、
前記編集された応答情報データをアクセス要求元の端末へ送信する処理と
を、さらに前記コンピュータに実行させる請求項７又は８記載の制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、複数のデータベースシステム間の負荷を分散する負荷分散方法と、この方法を実現するために用いる負荷分散制御装置及びその制御プログラムに関する。
【０００２】
【従来の技術】
一般に、サーバとデータベースとを備える複数組のデータベースシステムを使用して情報の登録や閲覧を可能にするシステムでは、各データベースシステムを効率的に使用するために、データベースシステム間の負荷分散を行っている。例えば、顧客の利用料金等の顧客情報を管理するシステムでは、サーバとデータベースとの間に負荷分散機構を配置し、この負荷分散機構によりデータベースシステムごとにその負荷分散制御を行っている。
【０００３】
また、負荷分散の方法については、例えば端末からのアクセスをセッション名をキーにして振り分ける方法と、端末からのアクセスをサーバの負荷状況に応じて振り分ける方法と、すべてのデータベースに同一の情報を登録しておく方法が知られている（例えば、非特許文献１を参照。）。
【０００４】
【非特許文献１】
「サーバ負荷分散技術」，Ｔｏｎｙ  Ｂｏｕｒｋｅ  著，鍋島公章  監修，上谷一／横山晴庸／鍋島公章  訳，オライリー・ジャパン，２００１年１２月７日，ｐ１１−ｐ１３。
【０００５】
【発明が解決しようとする課題】
ところが、サーバとデータベースとの間に負荷分散機構を配置する構成は、サーバとデータベースとが密接に結合しているデータベースシステムには適用することができない。この種のデータベースシステムにおいて負荷分散を実現するには、例えば各データベースシステムのサーバに負荷分散制御のためのアプリケーション・プログラムを持たせ、このアプリケーション・プログラムにより負荷分散制御を行うことが考えられる。しかし、この種の構成を導入する際には既存のデータベースシステムのアプリケーション・プログラムを変更しなけばならない。また、データ記憶容量の拡充要求やアクセス速度の増加要求等に応じてデータベースシステムを増設する場合にも、既存のデータベースシステムのアプリケーション・プログラムの変更が避けられない。
【０００６】
また、従来から知られている各負荷分散方法についても、以下のような問題点を有している。すなわち、セッション名をキーにして振り分ける方法は、同一ユーザが異なるセッション名でアクセスした場合に、このアクセスを以前アクセスしたデータベースシステムと同じデータベースシステムに振り分けることができない。このため、アクセス先のデータベースにおいて該当するデータが見つからなくなることがある。
【０００７】
一方サーバの負荷状況に応じて振り分ける方法は、一つのセッション内であっても、同一のユーザからのアクセスを、特定のデータベースシステムに振り分けることができず、この場合もアクセス先のデータベースにおいて該当するデータが見つからなくなることがある。
【０００８】
さらに、すべてのデータベースに同一の情報を登録しておく方法は、情報を複数のデータベースに分散することができないため、各データベースの負荷が大きくなる。また、データベースシステムにコンテンツの閲覧機能を持たせる場合には、すべてのデータベースにおけるコンテンツの閲覧状況を統一する必要があり、閲覧状況の更新が困難になる。
【０００９】
この発明は上記事情に着目してなされたもので、その主たる目的は、サーバとデータベースとの間が密接に結合している場合でも、アプリケーション・プログラムを変更することなくデータベースシステム間の負荷分散を実現できるようにし、これによりデータベースシステムの増設や変更に容易に対応可能にしたデータベースシステムの負荷分散方法とこの方法を実現する負荷分散制御装置及び制御プログラムを提供することにある。
【００１０】
【課題を解決するための手段】
上記目的を達成するためにこの発明は、サーバとデータベースとが密接に結合する複数のデータベースシステムと、アクセス要求を送信する端末との間に、負荷分散制御装置を介在して設置する。そして、この負荷分散制御装置において、各データベースシステムに対するアクセスの振り分け条件を可変可能な状態で事前に設定しておき、この状態で端末から上記データベースシステムに対するアクセス要求が到来した場合に、当該アクセス要求の内容と上記設定された振り分け条件とに基づいて、アクセス先のデータベースシステムを固定的に設定する。そして、この固定的に設定されたアクセス先のデータベースシステムに対しアクセスして、上記アクセス要求の内容に応じた処理を実行させるようにしたものである。
【００１１】
したがってこの発明によれば、複数のデータベースシステムに対する負荷分散処理が、データベースシステムとは別にしかも各データベースシステムに対し共通に設けられた負荷分散制御装置において行われる。このため、データベースシステムがサーバとデータベースとを密接に結合した構成であっても、これらのデータベースシステムのアプリケーション・プログラムを変更することなく、データベースシステム間の負荷分散を実現できる。また、データ記憶容量の拡充要求やアクセス速度の増加要求等に応じて、データベースシステムを簡単に増設することができる。
【００１２】
またこの発明は、データベースシステムに対するアクセスに先立ち、端末からのアクセス要求の内容をもとに、データベースシステムに対し同時に複数の処理を行わせた場合にデータベースシステム間で不整合が発生する可能性があるか否かを判定する。そして、不整合が発生する可能性があると判定された場合には、上記複数の処理が択一的に実行されるようにデータベースシステムに対するアクセスを排他制御することも特徴とする。
【００１３】
したがってこの発明によれば、例えばデータベースの更新処理のように、同時に複数の処理を行うとデータベース間で不整合が発生する可能性がある場合に、上記複数の処理は異なる時間に行われることになる。このため、データベース間の不整合の発生は未然に防止され、これにより負荷分散処理の信頼性を高めることができる。
【００１４】
さらにこの発明は、固定的に設定されたアクセス先のデータベースシステムが複数ある場合に、これらのデータベースシステムからそれぞれ読み出された情報データを一組の応答情報データに編集し、この編集された応答情報データをアクセス要求元の端末へ送信することも特徴とする。
【００１５】
このようにすると、複数のデータベースシステムに分散して記憶されていた情報データが、個々に端末に返送されずに、相互に関連付けられて一つの応答情報データにまとめられたのち端末に返送される。このため、アクセス要求元の端末では、要求した複数の情報データを整理する手間が不要となり、これにより利用者に対するサービス性を高めることができる。
【００１６】
【発明の実施の形態】
（第１の実施形態）
図１は、この発明に係わる負荷分散方法の第１の実施形態を実現するシステムの概略構成図である。
【００１７】
このシステムは、第１及び第２のデータベースシステムＤａ，Ｄｂと、複数の利用者端末ＴＭ１〜ＴＭｎと、ウエブサーバＷＳＶと、負荷分散制御サーバＣＳＶ１とを、ネットワークＮＷを介して接続したものである。
【００１８】
データベースシステムＤａ，Ｄｂは、データベースＤＢａ，ＤＢｂと、データベースサーバＤＳＶａ，ＤＳＶｂとから構成される。データベースＤＢａ，ＤＢｂには例えば顧客情報が格納される。顧客情報は、例えば顧客名とその属性情報からなる顧客管理データと、利用料金等の課金データとにより構成される。データベースサーバＤＳＶａ，ＤＳＶｂは、後述する負荷分散制御サーバＣＳＶ１との間の情報データの授受と、上記データベースＤＢａ，ＤＢｂへの情報データの登録処理や閲覧のための読み出し処理を実行する。
【００１９】
利用者端末ＴＭ１〜ＴＭｎは、例えばサービス提供者やサービス利用者が使用するパーソナル・コンピュータからなる。そして、ネットワークＮＷにより規定される通信プロトコルに従いウエブサーバＷＳＶ及び負荷分散制御サーバＣＳＶ１との間で情報データの送受信を行う通信機能と、受信された情報データを表示するブラウザ機能等を備えている。
【００２０】
ウエブサーバＷＳＶは、利用者端末ＴＭ１〜ＴＭｎに対するユーザ用アプリケーション・プログラムＡＰＵを備える。このユーザ用アプリケーション・プログラムＡＰＵは、利用者端末ＴＭ１〜ＴＭｎが負荷分散制御サーバＣＳＶ１を介してデータベースシステムＤａ，Ｄｂに対しアクセスする際に、負荷分散制御サーバＣＳＶ１に代わってアクセス表示画面等を利用者端末ＴＭ１〜ＴＭｎに送り、表示させる機能を有する。
【００２１】
負荷分散制御サーバＣＳＶ１は、上記利用者端末ＴＭ１〜ＴＭｎとデータベースシステムＤａ，Ｄｂとの間において、データベースシステムＤａ，Ｄｂの負荷分散処理を統括的に制御するもので、次のような機能を備えている。図２はその構成を示すブロック図である。
【００２２】
すなわち、負荷分散制御サーバＣＳＶ１は、設定情報記憶部１１と、設定情報取得機能１２と、アクセス先固定機能１３と、外部連携機能１４と、問い合わせ機能１５とを備えている。
【００２３】
設定情報記憶部１１には、上記各データベースシステムＤａ，Ｄｂに対するアクセスの振り分け条件を表す設定情報が記憶される。この設定情報は、データベースシステムＤａ，Ｄｂを運営するサービス提供者、或いは負荷分散制御サーバＣＳＶ１の管理者により任意に設定或いは変更され、図示しない保守用端末により上記設定情報記憶部１１に書き込まれる。
【００２４】
設定情報取得機能１２は、システムの運用開始時等、必要なタイミングにおいて、上記設定情報記憶部１１から設定情報を読み出し、読み出された設定情報をアクセス先固定機能１３に設定する。
【００２５】
外部連携機能１４は、利用者端末ＴＭ１〜ＴＭｎからデータベースシステムＤａ，Ｄｂに対するアクセス要求が到来した場合に、このアクセス要求を受信する。そして、受信されたアクセス要求から、要求する処理の種類と内容、利用者の識別情報、セッション情報等を抽出し、この抽出されたアクセス要求の情報をアクセス先固定機能１３に与える。
【００２６】
アクセス先固定機能１３は、上記外部連携機能１４からアクセス要求の情報と、事前に上記設定情報取得機能１２により設定された設定情報とに基づいて、アクセス先のデータベースシステムＤａ，Ｄｂを固定的に決定する。そして、この決定されたアクセス先を表す情報と上記アクセス要求の情報を問い合わせ機能１５に通知する。
【００２７】
問い合わせ機能１５は、上記アクセス先固定機能１３から通知されたアクセス先の指定情報に従いアクセス先のデータベースシステムＤａ，Ｄｂに対しアクセスし、当該データベースシステムＤａ，Ｄｂに利用者端末ＴＭ１〜ＴＭｎから要求された種類及び内容の処理を実行させる。
【００２８】
またそれと共に問い合わせ機能１５は、上記処理の実行の結果、アクセス先のデータベースシステムＤａ，Ｄｂから情報データが送信された場合には、この情報データを外部連携機能１４に転送してこの外部連携機能１４からアクセス要求元の利用者端末ＴＭ１〜ＴＭｎへ送信させる。また、このとき複数のデータベースシステムＤａ，Ｄｂからそれぞれ情報データが送られた場合には、これらの情報データを編集して統合された一組の応答情報データを作成する。そして、この作成された応答情報データを外部連携機能１４に転送してアクセス元へ送信させる。
【００２９】
次に、以上のように構成された負荷分散制御サーバＣＳＶ１の動作を説明する。図４は、その制御手順と制御内容を示すフローチャートである。
システムの運用開始に先立ち負荷分散制御サーバＣＳＶ１は、ステップＳＴ１において、設定情報取得機能１２により設定情報記憶部１１から振り分け条件を読み出す。そして、この読み出された振り分け条件をステップＳＴ２でアクセス先固定機能１３に与える。これによりアクセス先固定機能１３には、アクセスの振り分け条件が設定される。
【００３０】
例えば、いま利用者番号が奇数の利用者の顧客情報をデータベースシステムＤａに、一方利用者番号が偶数の利用者の顧客情報をデータベースシステムＤｂにそれぞれ分散して格納する場合を仮定する。この場合アクセス先固定機能１３には、利用者番号が奇数の利用者端末ＴＭ１，ＴＭ３，…からのアクセスをデータベースシステムＤａに、一方利用者番号が偶数の利用者端末ＴＭ２，ＴＭ４，…からのアクセスをデータベースシステムＤｂにそれぞれ振り分けるための振り分け条件が設定される。
【００３１】
さて、この状態で例えば利用者端末ＴＭ１から課金データの登録を要求するアクセスが到来したとする。負荷分散制御サーバＣＳＶ１は、このアクセス要求をステップＳＴ３で検出するとステップＳＴ４，ＳＴ５に移行する。そして、外部連携機能１４により、上記アクセス要求から処理の種類と内容、利用者の識別情報、セッション情報等を抽出し、この抽出されたアクセス要求の情報をアクセス固定機能１３に通知する。
【００３２】
アクセス固定機能１３は、ステップＳＴ６において、上記外部連携機能１４から通知されたアクセス要求の情報と、予め設定された振り分け条件とに基づいて、アクセス先のデータベースシステムを選択する。例えば、いまアクセス要求の種類が課金データの登録であり、かつ振り分け条件として先に述べた利用者番号の奇数／偶数によりアクセス先を振り分ける条件が設定されていたとする。この場合アクセス固定機能１３は、上記利用者端末ＴＭ１からのアクセス要求に対するアクセス先を第１のデータベースシステムＤａに設定する。そして、ステップＳＴ７において、上記設定されたアクセス先を指定する情報と、上記外部連携部１４から転送されたアクセス要求の内容を表す情報とを、問い合わせ機能１５に通知する。
【００３３】
問い合わせ機能１５は、上記アクセス先固定機能１３から通知された情報に従い、指定されたアクセス先の第１のデータベースシステムＤａに対しアクセスする。そして、ステップＳＴ８により、上記第１のデータベースシステムＤａのサーバＤＳＶａに対し利用者端末ＴＭ１の課金データ登録処理を指示する。
【００３４】
この結果、第１のデータベースシステムＤａでは、データベースサーバＤＳＶａにより、データベースＤＢａ内の利用者端末ＴＭ１に対応する利用者に割り当てられたエリアに課金データを登録する処理が実行される。例えば、利用者端末ＴＭ１に対応する利用者が“ｕｓｅｒ＿ａ”だったとすれば、図３（ａ）に示すデータベースＤＢａ内の上記“ｕｓｅｒ＿ａ”のエリアに、当該利用者の課金データが格納される。
【００３５】
同様に、利用者端末ＴＭ２から課金データの登録要求が到来した場合には、アクセス固定機能１３によりアクセス先が第２のデータベースシステムＤｂに設定される。そして、当該利用者端末ＴＭ２に対応する利用者が“ｕｓｅｒ＿ｂ”だったとすれば、図３（ｂ）に示すデータベースＤＢｂ内の上記“ｕｓｅｒ＿ｂ”のエリアに、当該利用者の課金データが格納される。
【００３６】
一方、利用者端末ＴＭ１からのアクセスの要求内容が、利用者の検索要求だったとする。この場合アクセス固定機能１３は、アクセス先として第１及び第２のデータベースシステムＤａ，Ｄｂを選択し、問い合わせ機能１５に指示する。この指示を受けて問い合わせ機能１５は、第１及び第２のデータベースシステムＤａ，Ｄｂに対しそれぞれアクセスする。そして、各データベースシステムＤａ，Ｄｂに対し、所定の条件に該当する利用者の検索を指示する。
【００３７】
この結果、各データベースシステムＤａ，Ｄｂではそれぞれ、データベースサーバＤＳＶａ，ＤＳＶｂにより、データベースＤＢａ，ＤＢｂ内から指定された条件に該当する利用者を検索する処理が実行される。例えば、いま検索条件として「先月の利用料金が一定額以上だった利用者」が指定されたとする。そうすると、データベースＤＢａ内から例えば“ｕｓｅｒ＿ａ”，“ｕｓｅｒ＿ｃ”が検索され、またデータベースＤＢｂ内から例えば“ｕｓｅｒ＿ｄ”が検索される。そして、この検索された利用者の顧客データは、データベースサーバＤＳＶａ，ＤＳＶｂから負荷分散制御サーバＣＳＶ１の問い合わせ機能１５にそれぞれ送信される。
【００３８】
上記データベースサーバＤＳＶａ，ＤＳＶｂから利用者の顧客データが返送されると、問い合わせ機能１５はステップＳＴ９でこの応答情報の返送を確認し、ステップＳＴ１０に移行する。そして、上記返送された各利用者“ｕｓｅｒ＿ａ”，“ｕｓｅｒ＿ｃ”，“ｕｓｅｒ＿ｄ”の顧客データを編集して１個の統合された応答情報データを作成し、この作成された応答情報データを外部連携機能１４に転送する。外部連携機能１４は、上記転送された応答情報データをネットワークＮＷを介してアクセス元の利用者端末ＴＭ１へ送信する。
【００３９】
以上のように第１の実施形態では、各データベースシステムＤａ，Ｄｂと利用者端末ＴＭ１〜ＴＭｎとの間に負荷分散制御サーバＣＳＶ１を配置する。そしてこの負荷分散制御サーバＣＳＶ１において、アクセスの振り分け条件を設定情報記憶部１１に予め記憶しておき、この振り分け条件を読み出してアクセス先固定機能１３に設定する。この状態で利用者端末ＴＭ１〜ＴＭｎからアクセス要求が到来した場合に、このアクセス要求の内容と上記設定された振り分け条件とに基づいて、アクセス先のデータベースシステムＤａ又はＤｂを固定的に設定する。そして、この設定されたデータベースシステムＤａ又はＤｂに対し問い合わせ機能１５からアクセスし、データベースシステムＤａ又はＤｂに上記アクセス要求の内容に応じた処理を実行させるようにしている。
【００４０】
したがって第１の実施形態によれば、データベースシステムＤａ，Ｄｂ間の負荷分散処理が、データベースシステムＤａ，Ｄｂとは別にしかも各データベースシステムＤａ，Ｄｂに対し共通に設けられた負荷分散制御サーバＣＳＶ１において行われる。このため、データベースシステムＤａ，ＤｂがデータベースサーバＤＳＶａ，ＤＳＶｂとデータベースＤＢａ，ＤＢｂとを密接に結合した構成であっても、これらのデータベースシステムＤａ，Ｄｂのアプリケーション・プログラムを変更することなく、データベースシステムＤａ，Ｄｂ間の負荷分散を実現できる。また、データ記憶容量の拡充要求やアクセス速度の増加要求等に応じて、データベースシステムを簡単に増設することができる。
【００４１】
また、振り分け条件を利用者単位に設定している。このため、同一利用者が異なるセッション名でアクセスした場合でも、このアクセスを以前アクセスしたデータベースシステムと同じデータベースシステムに振り分けることができる。また、データベースシステム間の負荷状況によらず、同一の利用者からのアクセスを常に特定のデータベースシステムに振り分けることができる。
【００４２】
さらに第１の実施形態では、複数のデータベースシステムＤａ，Ｄｂからそれぞれ読み出された情報データを、問い合わせ機能１５において一個の統合された応答情報データに編集し、この編集された応答情報データをアクセス要求元の利用者端末へ送信するようにしている。このため、複数のデータベースシステムＤａ，Ｄｂに分散して記憶されていた情報データが、個々に利用者端末に返送されずに、相互に関連付けられて一つの応答情報データにまとめられたのち利用者端末に返送される。このため、利用者は複数のデータベースシステムＤａ，Ｄｂから検索された情報データを自身で関連付けて整理する作業が不要となる。
【００４３】
（第２の実施形態）
図５は、この発明の第２の実施形態に係わるシステムとその負荷分散制御サーバの機能構成を示すブロック図である。なお、同図において前記図２と同一部分には同一符号を付して詳しい説明は省略する。
【００４４】
第２の実施形態に係わる負荷分散制御サーバＣＳＶ２は、同一の機能構成を備える第１及び第２の分散制御部１０，２０と、外部負荷分散制御部３０と、排他制御部４０とを備えている。
【００４５】
第１及び第２の分散制御部１０，２０は、設定情報記憶部１１，２１と、設定情報取得機能１２，２２と、アクセス先固定機能１３，２３と、外部連携機能１４，２４と、問い合わせ機能１５′，２５とを備えている。このうち設定情報記憶部１１，２１、設定情報取得機能１２，２２、アクセス先固定機能１３，２３、及び外部連携機能１４，２４については、前記第１の実施形態で述べた機能と同一の機能を有する。
【００４６】
問い合わせ機能１５′，２５は、上記アクセス先固定機能１３，２３から通知されたアクセス先の指定情報に従いアクセス先のデータベースシステムＤａ，Ｄｂに対しアクセスし、かつ当該データベースシステムＤａ，Ｄｂに利用者端末ＴＭ１〜ＴＭｎから要求された種類及び内容の処理を実行させる。
【００４７】
またそれと共に問い合わせ機能１５′，２５は、上記アクセスに先立ち、アクセス要求の内容をもとに、データベースシステムＤａ，Ｄｂに対し同時に複数の処理を行わせた場合にデータベースシステムＤａ，Ｄｂ間で情報データの不整合が発生する可能性があるか否かを判定する。そして、不整合が発生する可能性があると判定された場合には、排他制御部４０に対し上記アクセスに対するロック設定を依頼し、以後この排他制御部４０の制御に従い上記データベースシステムＤａ，Ｄｂに対するアクセスを行う。
【００４８】
排他制御部４０は、上記問い合わせ機能１５′，２５のうちの一方からロック設定が依頼された場合に当該アクセスについてロック状態を設定し、他方の問い合わせ機能のアクセスを禁止する。そして、問い合わせ機能からロック解除の依頼があると、このロック解除の依頼元と先のロック設定の依頼元との照合を行い、利用者が一致する場合にロック状態を解除する。
【００４９】
なお、外部負荷分散制御部３０は、分散制御部１０，２０の負荷状態に応じ、利用者端末ＴＭ１〜ＴＭｎからのアクセス要求を各分散制御部１０，２０に振り分ける機能を有する。
【００５０】
次に、以上のように構成された負荷分散制御サーバＣＳＶ２の動作を説明する。図６及び図７は、その制御手順と制御内容を示すフローチャートである。なお、同図において前記図４と同一部分には同一符号を付して説明を行う。
【００５１】
各分散制御部１０，２０の設定情報記憶部１１，２１には、同一の振り分け条件が予め記憶されている。そして、システムの運用開始に先立ち各分散制御部１０，２０はそれぞれ、ステップＳＴ１において設定情報取得機能１２，２２により上記設定情報記憶部１１，２１から振り分け条件を読み出す。そして、この読み出された振り分け条件をステップＳＴ２でアクセス先固定機能１３，２３に与える。これによりアクセス先固定機能１３，２３には、同一の振り分け条件が設定される。
【００５２】
さて、この状態で例えば利用者端末ＴＭ１から課金データの登録を要求するアクセスが送信されたとする。このアクセス要求は、外部負荷分散制御部３０により例えば分散制御部１０に振り分けられる。分散制御部１０は、上記アクセス要求をステップＳＴ３で検出するとステップＳＴ４，ＳＴ５に移行する。そして、外部連携機能１４により、上記アクセス要求から処理の種類と内容、利用者の識別情報、セッション情報等を抽出し、この抽出されたアクセス要求の情報をアクセス固定機能１３に通知する。
【００５３】
アクセス固定機能１３は、ステップＳＴ６において、上記外部連携機能１４から通知されたアクセス要求の情報と、予め設定された振り分け条件とに基づいて、アクセス先のデータベースシステムを選択する。例えば、いまアクセス要求の種類が「課金データの登録」であり、かつ振り分け条件として先に述べた利用者番号の奇数／偶数によりアクセス先を振り分ける条件が設定されていたとする。この場合アクセス固定機能１３は、上記利用者端末ＴＭ１からのアクセス要求に対するアクセス先を第１のデータベースシステムＤａに設定する。そして、ステップＳＴ７において、上記設定されたアクセス先を指定する情報と、上記外部連携部１４から転送されたアクセス要求の内容を表す情報とを、問い合わせ機能１５′に通知する。
【００５４】
問い合わせ機能１５′は、上記アクセス要求を受けると、ステップＳＴ１１において、先ず上記アクセス要求の内容をもとに当該アクセスがデータベースシステムＤａ，Ｄｂ間で情報データの不整合を引き起こす可能性があるか否かを判定する。そして、利用者データの更新処理のように、不整合が発生する可能性がある場合には、ステップＳＴ１２により排他制御部４０に対し上記アクセス要求に対するロック設定を依頼する。
【００５５】
上記ロック設定の依頼が到来すると排他制御部４０は、ステップＳＴ１３に移行してここで以下のようにロック設定処理を実行する。図８はこのロック設定処理の手順と内容を示すフローチャートである。
【００５６】
すなわち、排他制御部４０は、ステップＳＴ２１で依頼の種類が「ロック設定」であることを確認すると、ステップＳＴ２２によりアクセス先の利用者データに対し既にロックが設定されているか否かを判定する。そして、ロックが設定されていなければ、ステップＳＴ２３によりロック設定情報を記憶したのち、ステップＳＴ２４により依頼元の問い合わせ機能１５′に対しロックを設定した旨の通知（ロック設定通知）を返送する。上記ロック設定情報は、例えばロック対象のアクセス要求と、ロックした旨のフラグと、ロック設定の依頼元を表す識別情報とから構成される。
【００５７】
これに対し、上記アクセス先の利用者データに対し既にロックが設定されている場合には、排他制御部４０はステップＳＴ２５に移行してここで依頼元の問い合わせ機能１５′に対しロック設定済みの通知を返送する。
【００５８】
問い合わせ機能１５′は、上記排他制御部４０からロック設定通知を受け取ると、自己にアクセス権が与えられたと判断する。そして、ステップＳＴ１５において、上記アクセス先固定機能１３から通知された情報に従い、指定されたアクセス先の第１のデータベースシステムＤａに対しアクセスする。そして、上記データベースシステムＤａのサーバＤＳＶａに対し利用者端末ＴＭ１の課金データ登録処理を指示する。
【００５９】
これに対し、上記排他制御部４０からロック設定済みの通知を受けた場合には、問い合わせ機能１５′はロック解除が通知されるまで待機とリトライとを繰り返す。そして、この状態で排他制御部４０からロック解除通知を受信すると、図７に示すようにステップＳＴ１４からステップＳＴ１５に移行する。そして、上記アクセス先固定機能１３から通知された情報に従い、指定されたアクセス先の第１のデータベースシステムＤａに対しアクセスし、このデータベースシステムＤａのサーバＤＳＶａに対し利用者端末ＴＭ１の課金データの登録処理を指示する。
【００６０】
上記アクセスと課金データの登録処理の指示を受信すると、第１のデータベースシステムＤａでは、データベースサーバＤＳＶａにより、データベースＤＢａ内の利用者端末ＴＭ１に対応する利用者に割り当てられたエリアに課金データを登録する処理が実行される。
【００６１】
そして、上記課金データの登録処理の終了がデータベースサーバＤＳＶａから問い合わせ機能１５′に通知されると、問い合わせ機能１５′は利用者端末への複数のデータベースサーバからの応答データの有無をステップＳＴ１６で確認する。そして、複数のデータベースサーバからの応答情報がなければステップＳＴ１８に移行し、ここでロック解除依頼を排他制御部４０へ送る。
【００６２】
排他制御部４０は、上記ロック解除依頼を受け取るとステップＳＴ１９に移行し、ここでロック解除処理を以下のように実行する。すなわち、図８に示すようにステップＳＴ３１で上記依頼の種類が「ロック解除」であることを確認したのちステップＳＴ３２に移行し、ここでロック解除の依頼元とロック設定の依頼元とを照合する。この照合の結果、ロック解除の依頼元がロック設定の依頼元と一致すると、ステップＳＴ３３からステップＳＴ３４に移行する。そして、ロック設定中の情報をクリアすると共に、ステップＳＴ３５によりロック解除通知を問い合わせ機能１５′，２５に送信する。
【００６３】
このロック解除通知を受けると、アクセス待機中の問い合わせ機能（例えば２５）は、先に述べたようにステップＳＴ１４からステップＳＴ１５に移行して、データベースシステムＤａ，Ｄｂに対するアクセス処理を実行する。
【００６４】
一方、利用者端末ＴＭ１からのアクセスの要求内容が、利用者の検索要求だったとする。この場合アクセス固定機能１３は、アクセス先として第１及び第２のデータベースシステムＤａ，Ｄｂを選択し、問い合わせ機能１５′に指示する。この指示を受けて問い合わせ機能１５′は、アクセス要求の内容をもとに当該アクセスがデータベースシステムＤａ，Ｄｂ間で情報データの不整合を引き起こす可能性があるか否かを判定する。そして、利用者の検索要求のように不整合が発生する可能性がない場合には、ステップＳＴ１５においてそのまま各データベースシステムＤａ，Ｄｂに対しそれぞれアクセスする。そして、各データベースシステムＤａ，Ｄｂに対し、所定の条件に該当する利用者の検索を指示する。
【００６５】
この結果、各データベースシステムＤａ，Ｄｂではそれぞれ、データベースサーバＤＳＶａ，ＤＳＶｂにより、データベースＤＢａ，ＤＢｂ内から指定された条件に該当する利用者を検索する処理が実行される。そして、この検索処理により抽出された利用者の検索データは、データベースサーバＤＳＶａ，ＤＳＶｂから問い合わせ機能１５′にそれぞれ送信される。
【００６６】
上記データベースサーバＤＳＶａ，ＤＳＶｂから利用者の検索データが返送されると、問い合わせ機能１５′はステップＳＴ１６からステップＳＴ１７に移行する。そして、上記返送された各利用者の検索データを編集して１個の統合された応答情報データを作成し、この作成された応答情報データを外部連携機能１４に転送する。外部連携機能１４は、上記転送された応答情報データをネットワークＮＷを介してアクセス元の利用者端末ＴＭ１へ送信する。
【００６７】
以上のように第２の実施形態では、各データベースシステムＤａ，Ｄｂと利用者端末ＴＭ１〜ＴＭｎとの間に配置される負荷分散制御サーバＣＳＶ２に、同一機能を有する第１及び第２の分散制御部１０，２０を設ける。そして、これらの分散制御部１０，２０において、利用者端末ＴＭ１〜ＴＭｎから到来したアクセス要求の内容と予め設定した振り分け条件とに基づいてアクセス先のデータベースシステムＤａ又はＤｂを固定的に設定し、この設定されたデータベースシステムＤａ又はＤｂに対しアクセスして上記アクセス要求の内容に応じた処理を実行させるようにしている。
【００６８】
したがって、第２の実施形態においても、前記第１の実施形態と同様に、データベースシステムＤａ，ＤｂがデータベースサーバＤＳＶａ，ＤＳＶｂとデータベースＤＢａ，ＤＢｂとを密接に結合した構成であっても、これらのデータベースシステムＤａ，Ｄｂのアプリケーション・プログラムを変更することなく、データベースシステムＤａ，Ｄｂ間の負荷分散を実現できる。また、データ記憶容量の拡充要求やアクセス速度の増加要求等に応じて、データベースシステムを簡単に増設することができる。
【００６９】
また、同一機能を有する二つの分散制御部１０，２０を設けたことにより、負荷分散制御処理をこれら二つの分散制御部１０，２０で分散処理することが可能となり、これにより利用者端末ＴＭ１〜ＴＭｎからのアクセスが短期間に集中した場合にも効率的に負荷分散制御することができる。
【００７０】
しかも、各分散制御部１０，２０間に排他制御部４０を配置し、この排他制御部４０により分散制御部１０，２０からデータベースシステムＤａ，Ｄｂに対し同時に複数の処理の実行指示が行われないようにしている。したがって、例えばデータの更新処理のように、複数の処理が同時に実行されるとデータベースＤＢａ，ＤＢｂ間で不整合が発生する可能性がある処理が実行されないようにすることができ、これにより信頼性の高い負荷分散制御を実現できる。
【００７１】
（その他の実施形態）
前記各実施形態では、負荷分散制御サーバＣＳＶ１，ＣＳＶ２がネットワークＮＷを介してデータベースシステムＤａ，Ｄｂに接続される構成を例にとって説明した。しかし、負荷分散制御サーバＣＳＶ１，ＣＳＶ２とデータベースシステムＤａ，Ｄｂとの間を例えばバス接続するように構成してもよい。また、負荷分散制御サーバＣＳＶ１，ＣＳＶ２の機能をデータベースシステムＤａ，ＤｂのサーバＤＳＶａ，ＤＳＶｂの一つ（例えばＤＳＶａ）に収容し、この負荷分散制御機能が収容されたサーバＤＳＶａに他のデータベースシステムのサーバＤＳＶｂを通信回線又はバスを介して接続するように構成してもよい。
【００７２】
また、第２の実施形態では、二つの分散制御部１０，２０が互いに独立して並行動作する場合を例にとって説明したが、一方が現用、他方が予備として動作するように構成してもよい。
【００７３】
その他、振り分け条件の具体的な内容や、負荷分散制御の手順と内容、排他制御の処理手順と内容、異なるデータベースシステムから検索された複数の情報データの編集方法、データベースシステムの数等についても、この発明の要旨を逸脱しない範囲で種々変形して実施できる。
【００７４】
【発明の効果】
以上詳述したようにこの発明では、サーバとデータベースとが密接に結合する複数のデータベースシステムと、アクセス要求を送信する端末との間に、負荷分散制御装置を介在して設置する。そして、この負荷分散制御装置において、各データベースシステムに対するアクセスの振り分け条件を可変可能な状態で事前に設定しておき、この状態で端末から上記データベースシステムに対するアクセス要求が到来した場合に、当該アクセス要求の内容と上記設定された振り分け条件とに基づいて、アクセス先のデータベースシステムを固定的に設定する。そして、この固定的に設定されたアクセス先のデータベースシステムに対しアクセスして、上記アクセス要求の内容に応じた処理を実行させるようにしている。
【００７５】
したがってこの発明によれば、サーバとデータベースとの間が密接に結合している場合でも、アプリケーション・プログラムを変更することなくデータベースシステム間の負荷分散を実現することができ、これによりデータベースシステムの増設や変更に容易に対応可能にしたデータベースシステムの負荷分散方法とこの方法を実現する負荷分散制御装置及び制御プログラムを提供することができる。
【図面の簡単な説明】
【図１】この発明の第１の実施形態に係わる負荷分散方法を実現するシステムの概略構成図。
【図２】この発明の第１の実施形態に係わる負荷分散制御装置の機能構成を示すブロック図。
【図３】各データベースの記憶内容の一例を示す図。
【図４】図２に示した負荷分散制御装置の制御手順と制御内容を示すフローチャート。
【図５】この発明の第２の実施形態に係わる負荷分散制御装置の機能構成を示すブロック図。
【図６】図５に示した負荷分散制御装置の制御手順と制御内容の前半部分を示すフローチャート。
【図７】図５に示した負荷分散制御装置の制御手順と制御内容の後半部分を示すフローチャート。
【図８】図６及び図７に示す制御手順中のロック設定／解除処理の手順と内容を示すフローチャート。
【符号の説明】
ＴＭ１〜ＴＭｎ…端末、Ｄａ，Ｄｂ…データベースシステム、ＤＢａ，ＤＢｂ…データベース、ＤＳＶａ，ＤＳＶｂ…データベースサーバ、ＣＳＶ１，ＣＳＶ２…負荷分散制御サーバ、ＷＳＶ…ウエブサーバ、ＮＷ…ネットワーク、ＡＰＵ…ユーザ用アプリケーション・プログラム、１０，２０…分散制御部、１１，２１…設定情報記憶部、１２，２２…設定情報取得機能、１３，２３…アクセス先固定機能、１４，２４…外部連携機能、１５，１５′，２５…問い合わせ機能、３０…外部負荷分散制御部、４０…排他制御部。
【図１】
2004246778.tif 000003
【図２】
2004246778.tif 000004
【図３】
2004246778.tif 000005
【図４】
2004246778.tif 000006
【図５】
2004246778.tif 000007
【図６】
2004246778.tif 000008
【図７】
2004246778.tif 000009
【図８】
2004246778.tif 000010