(57)【要約】【課題】時間帯に関わらず効率良く動作させる。【解決手段】共有データをアクセスする複数のアプリケーションサーバと、複数のアプリケーションサーバのそれぞれによる共有データのロックを集中管理する集中管理部と、を備え、複数のアプリケーションサーバのそれぞれは、当該アプリケーションサーバによる共有データのロックを管理する分散管理部と、分散管理部からロックを取得する分散モードか、集中管理部からロックを取得する集中モードかを選択する選択部と、を有するシステムを提供する。【選択図】図２
2010041515.tif 000002
【特許請求の範囲】
【請求項１】
共有データをアクセスする複数のアプリケーションサーバと、
前記複数のアプリケーションサーバのそれぞれによる前記共有データのロックを集中管理する集中管理部と、
を備え、
前記複数のアプリケーションサーバのそれぞれは、
当該アプリケーションサーバによる前記共有データのロックを管理する分散管理部と、
前記分散管理部からロックを取得する分散モードか、前記集中管理部からロックを取得する集中モードかを選択する選択部と、
を有するシステム。
【請求項２】
前記分散モードにおいて、前記共有データの更新を禁止するアクセス制御部を更に備える
請求項１に記載のシステム。
【請求項３】
前記選択部は、
前記複数のアプリケーションサーバの全てが前記共有データを更新していないことを条件として、前記分散モードに遷移し、
前記複数のアプリケーションサーバのうち少なくとも１つが前記共有データを更新することを条件として、前記集中モードに遷移する
請求項２に記載のシステム。
【請求項４】
前記選択部は、
前記分散モードにおいて、前記共有データを更新する場合、前記分散モードから集中遷移モードに遷移し、
前記分散モードにおいて、他の少なくとも１つの前記アプリケーションサーバが前記集中遷移モードであることを条件として、前記分散モードから前記集中遷移モードに遷移し、
前記集中遷移モードにおいて、全ての前記アプリケーションサーバが前記集中遷移モードまたは前記集中モードの何れかであることを条件として、前記集中遷移モードから前記集中モードに遷移する
請求項３に記載のシステム。
【請求項５】
前記選択部は、前記集中遷移モードにおいて、前記集中管理部からロックを取得し、
前記アクセス制御部は、前記集中遷移モードにおいて、前記共有データの更新を禁止する
請求項４に記載のシステム。
【請求項６】
前記選択部は、
前記集中遷移モードにおいて、全ての前記アプリケーションサーバが前記集中遷移モードまたは前記集中モードの何れかであることを条件として、前記集中遷移モードから前記集中モードである集中参照モードに遷移し、
前記集中参照モードにおいて、前記共有データを更新する場合、前記集中参照モードから前記集中モードである集中更新モードに遷移し、
前記集中更新モードにおいて、前記共有データの更新を終えた場合、前記集中更新モードから前記集中参照モードに遷移する
請求項５に記載のシステム。
【請求項７】
前記アクセス制御部は、前記集中参照モードにおいて、前記共有データの更新を禁止する
請求項６に記載のシステム。
【請求項８】
前記選択部は、
前記集中参照モードにおいて、全ての前記アプリケーションサーバが前記集中参照モードまたは前記集中更新モードの何れかである、または、少なくとも１つの前記アプリケーションサーバが分散遷移モードであることを条件として、前記集中参照モードから前記分散遷移モードに遷移し、
前記分散遷移モードにおいて、全ての前記アプリケーションサーバが、前記分散遷移モード、前記分散モードまたは前記集中遷移モードの何れかであることを条件として、前記集中遷移モードから前記分散モードに遷移する
請求項７に記載のシステム。
【請求項９】
前記選択部は、前記分散遷移モードにおいて、前記集中管理部からロックを取得し、
前記アクセス制御部は、前記分散遷移モードにおいて、前記共有データの更新を禁止する
請求項８に記載のシステム。
【請求項１０】
当該システムは、新たな前記アプリケーションサーバを追加することが可能であり、
新たに追加された前記アプリケーションサーバの前記選択部は、
少なくとも１つの他の前記アプリケーションサーバが前記集中遷移モードであることを条件として、前記集中遷移モードに遷移し、
全ての他の前記アプリケーションサーバが前記集中遷移モードではなく、且つ、少なくとも１つの他の前記アプリケーションサーバが前記分散モードであることを条件として、前記分散モードに遷移し、
全ての他の前記アプリケーションサーバが前記集中遷移モードまたは前記分散モードの何れでもなく、且つ、少なくとも１つの他の前記アプリケーションサーバが前記分散遷移モードであることを条件として、前記分散遷移モードに遷移し、
全ての他の前記アプリケーションサーバが前記集中遷移モード、前記分散モードまたは前記分散遷移モードの何れでもないことを条件として、前記集中参照モードに遷移する
請求項９に記載のシステム。
【請求項１１】
前記選択部は、前記分散モードから前記集中遷移モードへの遷移において、前記集中管理部からロックを取得し、前記分散管理部から取得したロックを開放する
請求項４から７の何れかに記載のシステム。
【請求項１２】
前記複数のアプリケーションサーバのそれぞれは、
前記共有データにアクセスするアクセス制御部と、
前記共有データをキャッシュするキャッシュ部と
を更に有し、
前記アクセス制御部は、前記分散モードにおいて、前記キャッシュ部を用いて前記共有データを参照し、前記集中モードにおいて、前記キャッシュ部を用いずに前記共有データを参照し、
前記選択部は、前記分散モードへの遷移時において、前記キャッシュ部にキャッシュされた前記共有データを無効にする
請求項１から１１の何れかに記載のシステム。
【請求項１３】
共有データをアクセスする複数のアプリケーションサーバと、
前記複数のアプリケーションサーバのそれぞれによる前記共有データのロックを集中管理する集中管理部と、
を備え、
前記複数のアプリケーションサーバのそれぞれは、
当該アプリケーションサーバによる前記共有データのロックを管理する分散管理部と、
前記分散管理部からロックを取得する分散モード、または、前記集中管理部からロックを取得する集中遷移モード、集中参照モード、集中更新モードおよび分散遷移モードの何れか、を選択する選択部と
を有し、
前記選択部は、
前記分散モードにおいて、前記共有データを更新する場合、前記分散モードから集中遷移モードに遷移し、
前記分散モードにおいて、他の少なくとも１つの前記アプリケーションサーバが前記集中遷移モードであることを条件として、前記分散モードから前記集中遷移モードに遷移し、
前記集中遷移モードにおいて、全ての前記アプリケーションサーバが前記集中遷移モード、前記集中参照モードまたは前記集中更新モードの何れかであることを条件として、前記集中遷移モードから前記集中参照モードに遷移し、
前記集中参照モードにおいて、前記共有データを更新する場合、前記集中参照モードから前記集中更新モードに遷移し、
前記集中更新モードにおいて、前記共有データの更新を終えた場合、前記集中更新モードから前記集中参照モードに遷移し、
前記集中参照モードにおいて、全ての前記アプリケーションサーバが前記集中参照モードまたは前記集中更新モードの何れかである、または、少なくとも１つの前記アプリケーションサーバが分散遷移モードであることを条件として、前記集中参照モードから前記分散遷移モードに遷移し、
前記分散遷移モードにおいて、全ての前記アプリケーションサーバが、前記分散遷移モード、前記分散モードまたは前記集中遷移モードの何れかであることを条件として、前記集中遷移モードから前記分散モードに遷移する
システム。
【請求項１４】
共有データをアクセスする複数のアプリケーションサーバと、前記複数のアプリケーションサーバのそれぞれによる前記共有データのロックを集中管理する集中管理部とを備えるシステムにおける、前記アプリケーションサーバであって、
当該アプリケーションサーバによる前記共有データのロックを管理する分散管理部と、
前記分散管理部からロックを取得する分散モードか、前記集中管理部からロックを取得する集中モードかを選択する選択部と、
有するアプリケーションサーバ。
【請求項１５】
共有データをアクセスする複数のアプリケーションサーバと、前記複数のアプリケーションサーバのそれぞれによる前記共有データのロックを集中管理する集中管理部とを備えるシステムにおける、前記アプリケーションサーバとして、コンピュータを機能させるプログラムであって、
前記コンピュータを、
当該アプリケーションサーバによる前記共有データのロックを管理する分散管理部と、
前記分散管理部からロックを取得する分散モードか、前記集中管理部からロックを取得する集中モードかを選択する選択部と
して機能させるプログラム。
【請求項１６】
共有データをアクセスする複数のアプリケーションサーバと、前記複数のアプリケーションサーバのそれぞれによる前記共有データのロックを集中管理する集中管理部とを備えるシステムにおける、前記アプリケーションサーバとして、コンピュータを機能させる方法であって、
前記コンピュータを、当該アプリケーションサーバによる前記共有データのロックを管理する分散管理部として機能させるステップと、
前記コンピュータを、前記分散管理部からロックを取得する分散モードか、前記集中管理部からロックを取得する集中モードかを選択する選択部として機能させるステップと
を有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のアプリケーションサーバにより共有データをアクセスするシステム、当該システムにおけるアプリケーションサーバ、プログラムおよび方法に関する。
【背景技術】
【０００２】
データベースを格納するデータベースサーバと、それぞれがデータベースをアクセスする複数のアプリケーションサーバとを備えるシステムが知られている。このようなシステムは、アプリケーションサーバにデータベースの参照結果をキャッシュさせて、データベースサーバの負荷を軽減することができる。【０００３】
アプリケーションサーバにデータベースの参照結果をキャッシュさせるシステムでは、データベースと不整合なキャッシュデータの参照防止を目的として、複数のアプリケーションサーバ間でロック制御をしなければならない。ロック制御の手法としては、例えば、各アプリケーションサーバがそれぞれ個別にロックを管理する分散ロック方式、および、ロックサーバ等がロックを集中して管理する集中ロック方式が知られている。なお、以下、分散ロック方式のロック制御をキャッシュモード、集中ロック方式のロック制御をデータベースモードという。【０００４】
キャッシュモードが適用されたシステムにおいて、データベースを参照する場合、アプリケーションサーバは、参照に先立ってローカルで管理する参照ロックを取得する。また、キャッシュモードが適用されたシステムにおいて、データベースを更新する場合、アプリケーションサーバは、更新に先立って他の全てのアプリケーションサーバ内で管理する排他ロックを取得する。また、データベースモードが適用されたシステムにおいて、データベースを参照または更新する場合、アプリケーションサーバは、参照または更新に先立ってロックサーバで管理する参照ロックまたは排他ロックを取得する。【０００５】
ここで、キャッシュモードは、参照ロックの取得時のレイテンシが短くなるが、排他ロックを複数のアプリケーションサーバのそれぞれから取得しなければならなく処理が煩雑となる。これに対して、データベースモードは、排他ロックを１つのロックサーバからのみ取得すればよいので処理が簡易であるが、参照ロックの取得時のレイテンシは長くなる。従って、参照の多いアプリケーションを実現するシステムにおいては、キャッシュモードを適用し、更新の多いアプリケーションを実現するシステムにおいては、データベースモードを適用することが好ましい。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、銀行業務等を実現するシステムは、昼間の時間帯においてはデータベースの更新よりも参照が多く、また、顧客による利用の比較的に少ない夜間の時間帯においては、データベースのバッチ更新が行われる。このようなシステムにキャッシュモードを適用した場合、参照が比較的に多い昼間の時間帯においては動作効率が良いが、バッチ更新が行われる夜間の時間帯においては動作効率が悪くなる。反対に、このようなシステムにデータベースモードを適用した場合には、バッチ更新が行われる夜間の時間帯においては動作効率が良く、参照が比較的に多い昼間の時間帯においては動作効率が悪くなる。従って、例えばある特定の時間帯において更新が比較的に多くなるようなアプリケーションを実現するシステムでは、時間帯に関わらず動作効率を良くすることは困難であった。【０００７】
そこで本発明は、上記の課題を解決することのできるシステム、アプリケーションサーバ、プログラムおよび方法を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の第１の態様においては、共有データをアクセスする複数のアプリケーションサーバと、前記複数のアプリケーションサーバのそれぞれによる前記共有データのロックを集中管理する集中管理部と、を備え、前記複数のアプリケーションサーバのそれぞれは、当該アプリケーションサーバによる前記共有データのロックを管理する分散管理部と、前記分散管理部からロックを取得する分散モードか、前記集中管理部からロックを取得する集中モードかを選択する選択部と、を有するシステムを提供する。さらに、当該システムにおけるアプリケーションサーバ、当該アプリケーションサーバとしてコンピュータを機能させるプログラムおよび方法を提供する。なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係る情報処理システム１０の構成を示す。
【図２】複数のアプリケーションサーバ３０のそれぞれの構成を示す。
【図３】共有データ（ＩＴＥＭテーブル）のデータ構造を定義するスキーマの一例を示す。
【図４】図３に示されるＩＴＥＭテーブルから値を参照するための参照クエリの一例を示す。
【図５】キャッシュ部５６がキャッシングするデータの一例を示す。
【図６】選択部６０により選択されるモードの一例を示す。
【図７】モードを遷移させる場合の遷移条件の一例を示す。
【図８】各モードにおける、キャッシュの参照の可否、データベースの参照の可否およびデータベースの更新の可否の一例を示す。
【図９】情報処理システム１０における、ある一のアプリケーションサーバ３０（Ａ１）、および、他の複数のアプリケーションサーバ３０（Ａ２〜Ａｎ）による処理フローの一例を示す。
【図１０】情報処理システム１０に新たなアプリケーションサーバ３０が追加された場合における、当該新たなアプリケーションサーバ３０のモードの決定フローを示す。
【図１１】本発明の実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【００１０】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１１】
図１は、本実施形態に係る情報処理システム１０の構成を示す。情報処理システム１０は、データベースサーバ２０と、複数のアプリケーションサーバ３０と、集中管理部４０とを備える。
【００１２】
データベースサーバ２０は、共有データを記憶する。本実施形態においては、共有データは、データベース内のテーブルである。
【００１３】
複数のアプリケーションサーバ３０のそれぞれは、アプリケーションプログラムを実行することにより、当該アプリケーションプログラムに記述された情報処理を行う。また、複数のアプリケーションサーバ３０のそれぞれは、アプリケーションプログラムの記述に従って、データベースサーバ２０に記憶された共有データをネットワークを介してアクセスする。すなわち、複数のアプリケーションサーバ３０のそれぞれは、共有データの参照および共有データの更新をする。
【００１４】
集中管理部４０は、複数のアプリケーションサーバ３０のそれぞれによる共有データのロックを集中管理する。本実施形態においては、集中管理部４０は、共有データのレコード毎にロックを管理する。
【００１５】
より詳しくは、集中管理部４０は、一のレコードについて、一のアプリケーションサーバ３０から参照ロックの取得要求を受けた場合、他のアプリケーションサーバ３０が排他ロックを取得していないことを条件として、当該一のアプリケーションサーバ３０に参照ロックを取得させる。また、集中管理部４０は、一のレコードについて、一のアプリケーションサーバ３０から排他ロックの取得要求を受けた場合、他のアプリケーションサーバ３０が参照ロックまたは排他ロックを取得していないことを条件として、当該一のアプリケーションサーバ３０に排他ロックを取得させる。これにより、複数のアプリケーションサーバ３０は、互いに不整合なく共有データを参照および更新することができる。なお、データベースサーバ２０および集中管理部４０は、同一のシステムにより管理される構成であってよい。
【００１６】
図２は、複数のアプリケーションサーバ３０のそれぞれの構成を示す。複数のアプリケーションサーバ３０のそれぞれは、実行部５２と、アクセス制御部５４と、キャッシュ部５６と、分散管理部５８とを有する。このようなアプリケーションサーバ３０は、コンピュータがプログラムを実行することにより実現される。
【００１７】
実行部５２は、アプリケーションプログラムにより提供される情報処理を実行する。実行部５２は、例えば与えられたリクエストに応じた処理を実行して、処理結果をレスポンスとして返信する。また、実行部５２は、共有データを参照または更新する処理を実行する場合には、データベースサーバ２０に、アクセス制御部５４を介して参照要求または更新要求を発行する。実行部５２は、一例として、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）により記述された参照要求または更新要求を発行してよい。
【００１８】
アクセス制御部５４は、実行部５２により発行された共有データに対する参照要求または更新要求を、データベースサーバ２０にネットワークを介して送信する。そして、アクセス制御部５４は、データベースサーバ２０に送信した要求に応じた処理結果を取得して、実行部５２に返信する。
【００１９】
また、アクセス制御部５４は、データベースサーバ２０に対するアクセスのトランザクションが開始した場合、選択部６０を介して、集中管理部４０または分散管理部５８からロックを取得する。より詳しくは、アクセス制御部５４は、更新要求を含むトランザクション（以下、更新トランザクションと呼ぶ）を開始する場合には、排他ロックを取得する。また、アクセス制御部５４は、更新要求を含まないトランザクション（以下、参照トランザクションと呼ぶ）を開始する場合には、参照ロックを取得する。アクセス制御部５４は、ロックを取得できない場合には、共有データに対するアクセスを行わない。
【００２０】
なお、トランザクションとは、データベースサーバ２０との間でやり取りされる例えば不可分な複数の処理をまとめた単位をいう。データベースサーバ２０が例えばＳＱＬサーバであれば、トランザクションは、"Ｂｅｇｉｎ"から"Ｃｏｍｍｉｔ"または"Ｒｏｌｌｂａｃｋ"までの一連の処理をいう。
【００２１】
キャッシュ部５６は、アクセス制御部５４が参照した共有データをキャッシングする。キャッシュ部５６は、トランザクションが終了した場合、キャッシングした共有データを無効化してよい。
【００２２】
分散管理部５８は、当該アプリケーションサーバ３０による共有データのロックを管理する。本実施形態においては、分散管理部５８は、共有データのレコード毎にロックを管理する。
【００２３】
より詳しくは、分散管理部５８は、一のレコードについて、アクセス制御部５４から参照ロックの取得要求を受けた場合、他のアプリケーションサーバ３０のアクセス制御部５４が排他ロックを取得していないことを条件として、当該アクセス制御部５４に参照ロックを取得させる。また、分散管理部５８は、一のレコードについて、アクセス制御部５４から排他ロックの取得要求を受けた場合、他のアプリケーションサーバ３０のそれぞれに問い合わせをし、他のアプリケーションサーバ３０の全てが参照ロックまたは排他ロックを取得していないことを条件として、当該アクセス制御部５４に排他ロックを取得させる。これにより、分散管理部５８は、他のアプリケーションサーバ３０と不整合なく共有データを参照および更新することができる。
【００２４】
選択部６０は、分散管理部５８からロックを取得する分散モードか、集中管理部４０からロックを取得する集中モードかを選択する。選択部６０は、分散モードを選択している場合、アクセス制御部５４からのロックの取得要求を分散管理部５８に与えて、アクセス制御部５４に分散管理部５８からロックを取得させる。また、選択部６０は、集中モードを選択している場合、アクセス制御部５４からのロックの取得要求をネットワークを介して集中管理部４０に与えて、アクセス制御部５４に集中管理部４０からロックを取得させる。
【００２５】
ここで、選択部６０は、他のアプリケーションサーバ３０内のそれぞれの選択部６０と通信を行う。選択部６０は、複数のアプリケーションサーバ３０のうち少なくとも１つが共有データを更新することを条件として、集中モードに遷移する。また、選択部６０は、複数のアプリケーションサーバ３０の全てが共有データを更新していないことを条件として、分散モードに遷移する。そして、アクセス制御部５４は、分散モードにおいて、共有データの参照を許可し且つ更新を禁止してよい。また、アクセス制御部５４は、集中モードにおいて、共有データの参照および更新を許可してよい。
【００２６】
このようなアプリケーションサーバ３０は、共有データを更新する場合においては、集中管理部４０から排他ロックを取得するので、他のアプリケーションサーバとの間のやり取りを無くすことができる。また、アプリケーションサーバ３０は、共有データを更新しない場合においては、分散管理部５８から参照ロックを取得するので、参照ロックを取得するレイテンシを短くすることができる。従って、アプリケーションサーバ３０によれば、効率良く分散ロック制御をすることができる。
【００２７】
図３は、共有データ（ＩＴＥＭテーブル）のデータ構造を定義するスキーマの一例を示す。図４は、図３に示されるＩＴＥＭテーブルから値を参照するための参照クエリの一例を示す。図５は、キャッシュ部５６がキャッシングするデータの一例を示す。
【００２８】
キャッシュ部５６は、一例として、ＳＱＬにより記述された参照クエリにより、データベースサーバ２０内の共有データを参照した結果を格納する。例えば、データベースサーバ２０は、図３のスキーマに示されるようなＩＴＥＭテーブルを共有データとして記憶していたとする。この場合において、アクセス制御部５４は、データベースサーバ２０に対して図４の参照クエリを発行すると、図５に示されるようなクエリ結果をデータベースサーバ２０から取得することができる。キャッシュ部５６は、アクセス制御部５４が取得した図５に示されるようなクエリ結果をキャッシングする。
【００２９】
そして、アクセス制御部５４は、実行部５２から図５に示されるデータの全部または一部について再度参照要求を受けると、データベースサーバ２０に対して参照クエリを発行することに代えて、キャッシュ部５６から共有データを取得してクエリ結果として実行部５２に返信する。これにより、アクセス制御部５４は、データベースサーバ２０の負荷を下げ、更に、共有データを参照するレイテンシを短くすることができる。
【００３０】
図６は、選択部６０により選択されるモードの一例を示す。図７は、モードを遷移させる場合の遷移条件の一例を示す。選択部６０は、図６および図７に示されるように、分散モード、分散モードから集中モードに遷移させるための集中遷移モード、集中モードである集中参照モード、集中モードである集中更新モード、および、集中モードから分散モードに遷移させるための分散遷移モードの何れかを選択する。
【００３１】
選択部６０は、分散モードにおいて、共有データを更新する場合、分散モードから集中遷移モードに遷移する。選択部６０は、一例として、更新トランザクションの実行を開始した場合、分散モードから集中遷移モードに遷移してよい。または、選択部６０は、分散モードにおいて、他の少なくとも１つのアプリケーションサーバ３０が集中遷移モードであることを条件として、分散モードから集中遷移モードに遷移する。これにより、複数のアプリケーションサーバ３０は、何れか一のアプリケーションサーバ３０が共有データを更新する場合（例えば、更新トランザクションの実行を開始した場合）、全てが分散モードから集中遷移モードに遷移することができる。
【００３２】
また、選択部６０は、集中遷移モードにおいて、全てのアプリケーションサーバ３０が集中遷移モード、集中モードである集中参照モードまたは集中モードである集中更新モードの何れかであることを条件として、集中遷移モードから、集中モードである集中参照モードに遷移する。これにより、複数のアプリケーションサーバ３０は、全てが分散モードから集中遷移モードに遷移したことを条件として、集中モード（集中参照モードまたは集中遷移モード）に遷移することができる。なお、複数のアプリケーションサーバ３０は、集中遷移モードから集中モードである集中参照モードへと、互いに同期して遷移してもよい。
【００３３】
また、選択部６０は、集中参照モードにおいて、共有データを更新する場合、集中参照モードから集中更新モードに遷移する。選択部６０は、一例として、更新トランザクションを実行する場合、集中参照モードから集中更新モードに遷移してよい。
【００３４】
また、選択部６０は、集中更新モードにおいて、共有データの更新を終えた場合、集中更新モードから集中参照モードに遷移する。選択部６０は、一例として、全ての更新トランザクションの実行が終了した場合、集中更新モードから集中参照モードに遷移してよい。
【００３５】
また、選択部６０は、集中参照モードにおいて、全てのアプリケーションサーバ３０が集中参照モードまたは集中更新モードの何れかであることを条件として、または、少なくとも１つのアプリケーションサーバ３０が分散遷移モードであることを条件として、集中参照モードから分散遷移モードに遷移する。また、選択部６０は、集中参照モードに遷移してから一定期間経過したことを更に条件として、集中参照モードから分散遷移モードに遷移してもよい。これにより、各アプリケーションサーバ３０は、集中モードにおいて共有データを更新しない場合には、分散遷移モードに遷移することができる。
【００３６】
また、選択部６０は、分散遷移モードにおいて、全てのアプリケーションサーバ３０が、分散遷移モード、分散モードまたは集中遷移モードの何れかであることを条件として、集中遷移モードから分散モードに遷移する。これにより、複数のアプリケーションサーバ３０は、全てが集中モードから分散遷移モードに遷移したことを条件として、分散モードに遷移することができる。なお、複数のアプリケーションサーバ３０は、分散遷移モードから分散モードへと、互いに同期して遷移してもよい。
【００３７】
なお、選択部６０は、分散遷移モードにおいて、共有データを更新する場合、全てのアプリケーションサーバ３０が、分散遷移モード、集中参照モードまたは集中更新モードの何れかであることを条件として、分散遷移モードから集中参照モードに遷移する構成であってもよい。これにより、アプリケーションサーバ３０は、分散遷移モードにおいて、共有データを更新する場合（例えば、更新トランザクションの実行を開始した場合）、分散遷移モードから、集中参照モードを介して集中更新モードに遷移することができる。
【００３８】
図８は、各モードにおける、キャッシュの参照の可否、データベースの参照の可否およびデータベースの更新の可否の一例を示す。選択部６０は、分散モードにおいて、分散管理部５８からロックを取得する。また、選択部６０は、集中遷移モード、集中参照モード、集中更新モードおよび分散遷移モードにおいて、集中管理部４０からロックを取得する。
【００３９】
更に、分散モードにおいて分散管理部５８からロックを取得している場合、選択部６０は、分散モードから集中遷移モードへの遷移において、集中管理部４０からロックを取得し、分散管理部５８から取得したロックを開放する。また、分散遷移モードにおいて集中管理部４０からロックを取得している場合、選択部６０は、分散遷移モードから分散モードへの遷移において、分散管理部５８からロックを取得し、集中管理部４０から取得したロックを開放する。これにより、選択部６０は、ロックの取得先を切り替える場合において、共有データの不整合を無くすことができる。
【００４０】
また、アクセス制御部５４は、図８に示されるように、分散モードにおいて、キャッシュ部５６にキャッシュされた共有データおよびデータベースサーバ２０に記憶された共有データの参照を許可する。即ち、アクセス制御部５４は、分散モードにおいて、キャッシュ部５６を用いて共有データを参照する。これにより、アクセス制御部５４は、分散モードにおいて、データベースサーバ２０の負担を軽減するとともに共有データへのアクセスを速くすることができる。さらに、アクセス制御部５４は、分散モードにおいて、データベースサーバ２０に記憶された共有データの更新を禁止する。これにより、アクセス制御部５４は、分散モードにおいて、他の複数のアプリケーションサーバ３０から排他ロックを取得する処理を無くして分散ロック制御を簡易にすることができる。
【００４１】
また、アクセス制御部５４は、図８に示されるように、集中更新モードにおいて、キャッシュ部５６にキャッシュされた共有データの参照を禁止し、データベースサーバ２０に記憶された共有データの参照を許可する。即ち、アクセス制御部５４は、集中更新モードにおいて、キャッシュ部５６を用いずに共有データを参照する。さらに、アクセス制御部５４は、集中更新モードにおいて、データベースサーバ２０に記憶された共有データの更新を許可する。これにより、アクセス制御部５４は、集中更新モードにおいて、キャッシュアクセスを禁止して共有データが不整合となることを無くすことができる。
【００４２】
また、アクセス制御部５４は、図８に示されるように、集中遷移モード、集中参照モードおよび分散遷移モードにおいて、キャッシュ部５６にキャッシュされた共有データの参照を禁止し、データベースサーバ２０に記憶された共有データの参照を許可する。即ち、アクセス制御部５４は、集中遷移モード、集中参照モードおよび分散遷移モードにおいて、キャッシュ部５６を用いずに共有データを参照する。さらに、アクセス制御部５４は、集中遷移モード、集中参照モードおよび分散遷移モードにおいて、データベースサーバ２０に記憶された共有データの更新を禁止する。これにより、アクセス制御部５４は、分散モードから集中更新モードへの遷移および集中更新モードから分散モードへの遷移において、キャッシュアクセスを禁止して共有データが不整合となることを無くすことができる。
【００４３】
さらに、選択部６０は、分散遷移モードから分散モードへの遷移時において、キャッシュ部５６にキャッシュされた共有データを無効にしてよい。これに代えて、選択部６０は、分散遷移モードから分散モードへの遷移時において、キャッシュ部５６にキャッシュされた共有データのうち何れかのアプリケーションサーバ３０により更新されたデータの通知を受け、通知を受けたデータを選択的に無効化してもよい。これにより、選択部６０は、キャッシュ部５６にキャッシュされた共有データと、データベースサーバ２０に記憶された共有データとの間の不整合を無くすことができる。
【００４４】
図９は、情報処理システム１０における、ある一のアプリケーションサーバ３０（Ａ１）、および、他の複数のアプリケーションサーバ３０（Ａ２〜Ａｎ）による処理フローの一例を示す。全てのアプリケーションサーバ３０（Ａ１〜Ａｎ）が分散モードである場合において、ある一のアプリケーションサーバ３０（Ａ１）が更新トランザクションの実行を開始すると、当該一のアプリケーションサーバ３０（Ａ１）、および、他の複数のアプリケーションサーバ３０（Ａ２〜Ａｎ）は、図９のフローに従って動作をする。
【００４５】
まず、一のアプリケーションサーバ３０（Ａ１）において更新トランザクションが開始されると、当該一のアプリケーションサーバ３０（Ａ１）は、集中遷移モードに遷移する（Ｓ１０１、Ｓ１０２、Ｓ１０３）。他の複数のアプリケーションサーバ３０（Ａ２〜Ａｎ）のそれぞれは、一のアプリケーションサーバ３０（Ａ１）から通知（Ｓ１０３Ａ）を受け取って、一のアプリケーションサーバ３０（Ａ１）が集中遷移モードであることを認識し、集中遷移モードに遷移する（Ｓ２０１、Ｓ２０４、Ｓ２０５）。この結果、全てのアプリケーションサーバ３０（Ａ１〜Ａｎ）は、集中遷移モードへとなる。
【００４６】
複数のアプリケーションサーバ３０（Ａ１〜Ａｎ）のそれぞれは、他のアプリケーションサーバ３０（Ａ１〜Ａｎ）のそれぞれから通知（Ｓ２０５Ａ）を受け取って、全てのアプリケーションサーバ３０（Ａ１〜Ａｎ）が集中遷移モードであることを認識し（Ｓ１０６、Ｓ２０６）、集中参照モードに遷移する（Ｓ１０７、Ｓ２０７）。ここで、複数のアプリケーションサーバ３０（Ａ１〜Ａｎ）のそれぞれは、互いに同期して、集中遷移モードから集中参照モードへと遷移してよい。
【００４７】
続いて、他のアプリケーションサーバ３０（Ａ２〜Ａｎ）のそれぞれは、集中参照モードに遷移してから一定期間経過すると（Ｓ２１２）、分散遷移モードに遷移する（Ｓ２１３）。
【００４８】
また、一のアプリケーションサーバ３０（Ａ１）は、集中参照モードから集中更新モードに遷移する（Ｓ１０８）。続いて、一のアプリケーションサーバ３０（Ａ１）は、共有データの更新を実行する（Ｓ１０９）。続いて、一のアプリケーションサーバ３０（Ａ１）は、全ての更新トランザクションが終了すると（Ｓ１１０）、集中更新モードから集中参照モードに遷移する（Ｓ１１１）。一のアプリケーションサーバ３０（Ａ１）は、集中参照モードに遷移してから一定期間経過すると（Ｓ１１２）、分散遷移モードに遷移する（Ｓ１１３）。この結果、全てのアプリケーションサーバ３０（Ａ１〜Ａｎ）は、分散遷移モードとなる。
【００４９】
複数のアプリケーションサーバ３０（Ａ１〜Ａｎ）のそれぞれは、他のアプリケーションサーバ３０（Ａ１〜Ａｎ）から通知（Ｓ１１３Ａ、Ｓ２１３Ａ）を受け取って、全てのアプリケーションサーバ３０（Ａ１〜Ａｎ）が分散遷移モードであることを認識し（Ｓ１１４、Ｓ２１４）、分散モードに遷移する（Ｓ１１５、Ｓ２１５）。ここで、複数のアプリケーションサーバ３０（Ａ１〜Ａｎ）のそれぞれは、互いに同期して、分散遷移モードから分散モードへと遷移してよい。
【００５０】
以上のように複数のアプリケーションサーバ３０のそれぞれは、分散モードにおいて何れかの一のアプリケーションサーバ３０において更新トランザクションが開始されると、分散モードから集中遷移モードを介して集中参照モードへと遷移することができる。さらに、一のアプリケーションサーバ３０は、集中参照モードから集中更新モードへと遷移して、更新を実行することができる。そして、複数のアプリケーションサーバ３０のそれぞれは、一のアプリケーションサーバ３０における更新が終了すると、集中参照モードから分散遷移モードを介して分散モードへと遷移することができる。
【００５１】
図１０は、情報処理システム１０に新たなアプリケーションサーバ３０が追加された場合における、当該新たなアプリケーションサーバ３０のモードの決定フローを示す。当該情報処理システム１０は、新たなアプリケーションサーバ３０を追加することができる。情報処理システム１０に新たに追加されたアプリケーションサーバ３０の選択部６０は、図１０に示される判断に従ってモードを選択する。
【００５２】
まず、選択部６０は、少なくとも１つの他のアプリケーションサーバ３０が集中遷移モードであるか否かを判断する（Ｓ３０１）。選択部６０は、少なくとも１つの他のアプリケーションサーバ３０が集中遷移モードであることを条件として（Ｓ３０１のＹｅｓ）、集中遷移モードに遷移する（Ｓ３０２）。
【００５３】
全ての他のアプリケーションサーバ３０が集中遷移モードではない場合（Ｓ３０１のＮｏ）、続いて、選択部６０は、少なくとも１つの他のアプリケーションサーバ３０が分散モードであるか否かを判断する（Ｓ３０３）。選択部６０は、全ての他のアプリケーションサーバ３０が集中遷移モードではなく、且つ、少なくとも１つの他のアプリケーションサーバ３０が分散モードであることを条件として（Ｓ３０３のＹｅｓ）、分散モードに遷移する（Ｓ３０４）。
【００５４】
続いて、全ての他のアプリケーションサーバ３０が集中遷移モードまたは分散モードの何れでもない場合（Ｓ３０３のＮｏ）、続いて、選択部６０は、少なくとも１つの他のアプリケーションサーバ３０が分散遷移モードであるか否かを判断する（Ｓ３０５）。選択部６０は、全ての他のアプリケーションサーバ３０が集中遷移モードまたは分散モードの何れでもなく、且つ、少なくとも１つの他のアプリケーションサーバ３０が分散遷移モードであることを条件として（Ｓ３０５のＹｅｓ）、分散遷移モードに遷移する（Ｓ３０６）。
【００５５】
そして、選択部６０は、全ての他のアプリケーションサーバ３０が集中遷移モード、分散モードまたは分散遷移モードの何れでもないことを条件として（Ｓ３０５のＮｏ）、集中参照モードに遷移する（Ｓ３０７）。以上のようにモードを決定することによって、アプリケーションサーバ３０は、情報処理システム１０に新たに追加された場合であっても、他のアプリケーションサーバ３０と整合性を保って共有データにアクセスすることができる。
【００５６】
図１１は、本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＣＤ−ＲＯＭドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部とを備える。
【００５７】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００５８】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ２０６０は、ＣＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００５９】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００６０】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００６１】
コンピュータ１９００にインストールされ、コンピュータ１９００をアプリケーションサーバ３０として機能させるプログラムは、実行モジュールと、アクセス制御モジュールと、キャッシュモジュールと、分散管理モジュールと、選択モジュールとを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、実行部５２、アクセス制御部５４、キャッシュ部５６、分散管理部５８および選択部６０としてそれぞれ機能させる。
【００６２】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である実行部５２、アクセス制御部５４、キャッシュ部５６、分散管理部５８および選択部６０として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有のアプリケーションサーバ３０が構築される。
【００６３】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＣＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００６４】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０（ＣＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【００６５】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【００６６】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【００６７】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５の他に、ＤＶＤ又はＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【００６８】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００６９】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００７０】
１０  情報処理システム
２０  データベースサーバ
３０  アプリケーションサーバ
４０  集中管理部
５２  実行部
５４  アクセス制御部
５６  キャッシュ部
５８  分散管理部
６０  選択部
１９００  コンピュータ
２０００  ＣＰＵ
２０１０  ＲＯＭ
２０２０  ＲＡＭ
２０３０  通信インターフェイス
２０４０  ハードディスクドライブ
２０５０  フレキシブルディスク・ドライブ
２０６０  ＣＤ−ＲＯＭドライブ
２０７０  入出力チップ
２０７５  グラフィック・コントローラ
２０８０  表示装置
２０８２  ホスト・コントローラ
２０８４  入出力コントローラ
２０９０  フレキシブルディスク
２０９５  ＣＤ−ＲＯＭ
【図１】
2010041515.tif 000003
【図２】
2010041515.tif 000004
【図３】
2010041515.tif 000005
【図４】
2010041515.tif 000006
【図５】
2010041515.tif 000007
【図６】
2010041515.tif 000008
【図７】
2010041515.tif 000009
【図８】
2010041515.tif 000010
【図９】
2010041515.tif 000011
【図１０】
2010041515.tif 000012
【図１１】
2010041515.tif 000013
【手続補正書】
【提出日】平成21年12月2日(2009.12.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
共有データをアクセスする複数のアプリケーションサーバと、
前記複数のアプリケーションサーバのそれぞれによる前記共有データのロックを集中管理する集中管理部と、
を備え、
前記複数のアプリケーションサーバのそれぞれは、
当該アプリケーションサーバによる前記共有データのロックを管理する分散管理部と、
前記共有データの更新を禁止するアクセス制御部を備え、前記分散管理部からロックを取得する分散モードか、前記集中管理部からロックを取得する集中モードかを選択する選択部であって、
前記複数のアプリケーションサーバの全てが前記共有データを更新していないことを条件として、前記分散モードに遷移し、
前記複数のアプリケーションサーバのうち少なくとも１つが前記共有データを更新することを条件として、前記集中モードに遷移する、選択部と
を有するシステム。
【請求項２】
（削除）
【請求項３】
（削除）
【請求項４】
前記選択部は、
前記分散モードにおいて、前記共有データを更新する場合、前記分散モードから集中遷移モードに遷移し、
前記分散モードにおいて、他の少なくとも１つの前記アプリケーションサーバが前記集中遷移モードであることを条件として、前記分散モードから前記集中遷移モードに遷移し、
前記集中遷移モードにおいて、全ての前記アプリケーションサーバが前記集中遷移モードまたは前記集中モードの何れかであることを条件として、前記集中遷移モードから前記集中モードに遷移する
請求項３に記載のシステム。
【請求項５】
前記選択部は、前記集中遷移モードにおいて、前記集中管理部からロックを取得し、
前記アクセス制御部は、前記集中遷移モードにおいて、前記共有データの更新を禁止する
請求項４に記載のシステム。
【請求項６】
前記選択部は、
前記集中遷移モードにおいて、全ての前記アプリケーションサーバが前記集中遷移モードまたは前記集中モードの何れかであることを条件として、前記集中遷移モードから前記集中モードである集中参照モードに遷移し、
前記集中参照モードにおいて、前記共有データを更新する場合、前記集中参照モードから前記集中モードである集中更新モードに遷移し、
前記集中更新モードにおいて、前記共有データの更新を終えた場合、前記集中更新モードから前記集中参照モードに遷移する
請求項５に記載のシステム。
【請求項７】
前記アクセス制御部は、前記集中参照モードにおいて、前記共有データの更新を禁止する
請求項６に記載のシステム。
【請求項８】
前記選択部は、
前記集中参照モードにおいて、全ての前記アプリケーションサーバが前記集中参照モードまたは前記集中更新モードの何れかである、または、少なくとも１つの前記アプリケーションサーバが分散遷移モードであることを条件として、前記集中参照モードから前記分散遷移モードに遷移し、
前記分散遷移モードにおいて、全ての前記アプリケーションサーバが、前記分散遷移モード、前記分散モードまたは前記集中遷移モードの何れかであることを条件として、前記集中遷移モードから前記分散モードに遷移する
請求項７に記載のシステム。
【請求項９】
前記選択部は、前記分散遷移モードにおいて、前記集中管理部からロックを取得し、
前記アクセス制御部は、前記分散遷移モードにおいて、前記共有データの更新を禁止する
請求項８に記載のシステム。
【請求項１０】
当該システムは、新たな前記アプリケーションサーバを追加することが可能であり、
新たに追加された前記アプリケーションサーバの前記選択部は、
少なくとも１つの他の前記アプリケーションサーバが前記集中遷移モードであることを条件として、前記集中遷移モードに遷移し、
全ての他の前記アプリケーションサーバが前記集中遷移モードではなく、且つ、少なくとも１つの他の前記アプリケーションサーバが前記分散モードであることを条件として、前記分散モードに遷移し、
全ての他の前記アプリケーションサーバが前記集中遷移モードまたは前記分散モードの何れでもなく、且つ、少なくとも１つの他の前記アプリケーションサーバが前記分散遷移モードであることを条件として、前記分散遷移モードに遷移し、
全ての他の前記アプリケーションサーバが前記集中遷移モード、前記分散モードまたは前記分散遷移モードの何れでもないことを条件として、前記集中参照モードに遷移する
請求項９に記載のシステム。
【請求項１１】
前記選択部は、前記分散モードから前記集中遷移モードへの遷移において、前記集中管理部からロックを取得し、前記分散管理部から取得したロックを開放する
請求項４から７の何れかに記載のシステム。
【請求項１２】
前記複数のアプリケーションサーバのそれぞれは、
前記共有データにアクセスするアクセス制御部と、
前記共有データをキャッシュするキャッシュ部と
を更に有し、
前記アクセス制御部は、前記分散モードにおいて、前記キャッシュ部を用いて前記共有データを参照し、前記集中モードにおいて、前記キャッシュ部を用いずに前記共有データを参照し、
前記選択部は、前記分散モードへの遷移時において、前記キャッシュ部にキャッシュされた前記共有データを無効にする
請求項１から１１の何れかに記載のシステム。
【請求項１３】
共有データをアクセスする複数のアプリケーションサーバと、
前記複数のアプリケーションサーバのそれぞれによる前記共有データのロックを集中管理する集中管理部と、
を備え、
前記複数のアプリケーションサーバのそれぞれは、
当該アプリケーションサーバによる前記共有データのロックを管理する分散管理部と、
前記分散管理部からロックを取得する分散モード、または、前記集中管理部からロックを取得する集中遷移モード、集中参照モード、集中更新モードおよび分散遷移モードの何れか、を選択する選択部と
を有し、
前記選択部は、
前記分散モードにおいて、前記共有データを更新する場合、前記分散モードから集中遷移モードに遷移し、
前記分散モードにおいて、他の少なくとも１つの前記アプリケーションサーバが前記集中遷移モードであることを条件として、前記分散モードから前記集中遷移モードに遷移し、
前記集中遷移モードにおいて、全ての前記アプリケーションサーバが前記集中遷移モード、前記集中参照モードまたは前記集中更新モードの何れかであることを条件として、前記集中遷移モードから前記集中参照モードに遷移し、
前記集中参照モードにおいて、前記共有データを更新する場合、前記集中参照モードから前記集中更新モードに遷移し、
前記集中更新モードにおいて、前記共有データの更新を終えた場合、前記集中更新モードから前記集中参照モードに遷移し、
前記集中参照モードにおいて、全ての前記アプリケーションサーバが前記集中参照モードまたは前記集中更新モードの何れかである、または、少なくとも１つの前記アプリケーションサーバが分散遷移モードであることを条件として、前記集中参照モードから前記分散遷移モードに遷移し、
前記分散遷移モードにおいて、全ての前記アプリケーションサーバが、前記分散遷移モード、前記分散モードまたは前記集中遷移モードの何れかであることを条件として、前記集中遷移モードから前記分散モードに遷移する
システム。
【請求項１４】
共有データをアクセスする複数のアプリケーションサーバと、前記複数のアプリケーションサーバのそれぞれによる前記共有データのロックを集中管理する集中管理部とを備えるシステムにおける、前記アプリケーションサーバであって、
当該アプリケーションサーバによる前記共有データのロックを管理する分散管理部と、
前記共有データの更新を禁止するアクセス制御部を備え、前記分散管理部からロックを取得する分散モードか、前記集中管理部からロックを取得する集中モードかを選択する選択部であって、
前記複数のアプリケーションサーバの全てが前記共有データを更新していないことを条件として、前記分散モードに遷移し、
前記複数のアプリケーションサーバのうち少なくとも１つが前記共有データを更新することを条件として、前記集中モードに遷移する、選択部と
有するアプリケーションサーバ。
【請求項１５】
共有データをアクセスする複数のアプリケーションサーバと、前記複数のアプリケーションサーバのそれぞれによる前記共有データのロックを集中管理する集中管理部とを備えるシステムにおける、前記アプリケーションサーバとして、コンピュータを機能させるプログラムであって、
前記コンピュータを、
当該アプリケーションサーバによる前記共有データのロックを管理する分散管理部と、
前記共有データの更新を禁止するアクセス制御部を備え、前記分散管理部からロックを取得する分散モードか、前記集中管理部からロックを取得する集中モードかを選択する選択部であって、
前記複数のアプリケーションサーバの全てが前記共有データを更新していないことを条件として、前記分散モードに遷移し、
前記複数のアプリケーションサーバのうち少なくとも１つが前記共有データを更新することを条件として、前記集中モードに遷移する、選択部と
して機能させるプログラム。
【請求項１６】
共有データをアクセスする複数のアプリケーションサーバと、前記複数のアプリケーションサーバのそれぞれによる前記共有データのロックを集中管理する集中管理部とを備えるシステムにおける、前記アプリケーションサーバとして、コンピュータを機能させる方法であって、
前記コンピュータを、当該アプリケーションサーバによる前記共有データのロックを管理する分散管理部として機能させるステップと、
前記共有データの更新を禁止するアクセス制御部を備え、前記分散管理部からロックを取得する分散モードか、前記集中管理部からロックを取得する集中モードかを選択する選択部であって、
前記複数のアプリケーションサーバの全てが前記共有データを更新していないことを条件として、前記分散モードに遷移し、
前記複数のアプリケーションサーバのうち少なくとも１つが前記共有データを更新することを条件として、前記集中モードに遷移する、選択部として機能させるステップと
を有する方法。
【国際調査報告】
2010041515.tif 000014
2010041515.tif 000015
2010041515.tif 000016