(57)【要約】【課題】共有対象オブジェクトを格納するデータベースが不要であり、一部のＡＰサーバのみが保有するメモリ・セッション・レプリケーションの機能の使用が不要であり、かつ、共有対象オブジェクト全体を通信する必要のないシステムを提供する。【解決手段】各アプリケーションサーバ装置（ＡＰサーバ装置）が保有する設定ファイル１０１には共有対象のオブジェクトの情報が記載されている。ＡＰサーバ装置３ａ，３ｂは自身の実行するアプリケーションにより設定ファイル１０１に記載されたオブジェクトの生成処理、削除処理、変更処理のいずれかが実行されると処理内容を管理装置２０ａに送信する。管理装置２０ａは処理内容を受信すると、処理内容を送信したＡＰサーバ装置以外のＡＰサーバ装置に受信した処理内容を送信する。処理内容を受信したＡＰサーバ装置は、受信した処理内容に従ってオブジェクトの生成処理、削除処理、変更処理のいずれかを実行する。【選択図】図４
2011070382.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムを実行すると共に、前記アプリケーションプログラムの実行に必要な情報を示すオブジェクトのうち複数のアプリケーションプログラムによって共有される共有対象のオブジェクトが記載された共有対象オブジェクトリストを有する複数のアプリケーションサーバ装置と、
前記複数のアプリケーションサーバ装置と通信を行う管理装置と
を備え、
それぞれの前記アプリケーションサーバ装置は、
自身の実行するアプリケーションプログラムによって前記共有オブジェクトリストに記載されたオブジェクトの生成処理と、削除処理と、変更処理とのいずれかの処理が実行された場合には、処理内容を前記管理装置に送信し、
前記管理装置は、
前記処理内容を前記アプリケーションサーバ装置から受信した場合には、前記処理内容を送信した前記アプリケーションサーバ装置以外の前記アプリケーションサーバ装置に受信された前記処理内容を送信し、
前記処理内容を受信した前記アプリケーションサーバ装置は、
受信された前記処理内容に従って、オブジェクトの生成処理と、削除処理と、変更処理とのいずれかの処理を実行することを特徴とするオブジェクト共有システム。
【請求項２】
それぞれの前記アプリケーションサーバ装置は、
自身の実行するアプリケーションプログラムによってオブジェクトの属性の変更処理が実行された場合には、前記処理内容として、変更後の属性を前記管理装置に送信し、
前記処理内容を受信した前記アプリケーションサーバ装置は、
受信された前記変更後の属性に従って、オブジェクトの変更処理を実行することを特徴とする請求項２記載のオブジェクト共有システム。
【請求項３】
それぞれの前記アプリケーションサーバ装置の有する共有オブジェクトリストは、
記載されているオブジェクトに対してオブジェクトの機能を示すクラスが記載されていることを特徴とする請求項１または２のいずれかに記載のオブジェクト共有システム。
【請求項４】
前記管理装置は、
それぞれの前記アプリケーションサーバ装置に共有オブジェクトリストを送信し、
それぞれの前記アプリケーションサーバ装置の保有する共有オブジェクトリストは、
前記管理装置から送信されたことを特徴とする請求項１〜３のいずれかに記載のオブジェクト共有システム。
【請求項５】
前記オブジェクト共有システムは、さらに、
前記管理装置による処理を代替する第２の管理装置を備えたことを特徴とする請求項１〜４のいずれかに記載のオブジェクト共有システム。
【請求項６】
通信部と、
アプリケーションプログラムを実行するアプリケーション実行部と、
アプリケーションプログラムの実行に必要な情報を示すオブジェクトのうち複数のアプリケーションプログラムによって共有される共有対象のオブジェクトが記載された共有対象オブジェクトリストを格納する格納部と、
前記アプリケーション実行部によって実行されるアプリケーションプログラムによる処理を監視することによりアプリケーションプログラムによって前記共有対象オブジェクトリストに記載されたオブジェクトの生成処理と、削除処理と、変更処理とのいずれかの処理が実行されたことを検知した場合には、前記アプリケーションプログラムによる処理内容を送信先として予め設定されている管理装置に前記通信部を介して送信する監視部と、
前記管理装置からオブジェクトの生成処理と、削除処理と、変更処理とのいずれかの処理を指令する処理内容を前記通信部を介して受信し、前記通信部を介して受信された前記処理内容に従ってオブジェクトの生成処理と、削除処理と、変更処理とのいずれかの処理を実行する反映部と
を備えたことを特徴とするアプリケーションサーバ装置。
【請求項７】
通信部と、
アプリケーションプログラムの実行に必要な情報を示すオブジェクトのうち複数のアプリケーションプログラムによって共有される共有対象のオブジェクトが記載された共有対象オブジェクトリストを格納する格納部と、
アプリケーションプログラムを実行する複数のアプリケーションサーバ装置に前記共有オブジェクトリストを前記通信部を介して送信すると共に、いずれかの前記アプリケーションサーバ装置から前記アプリケーションサーバ装置の実行するアプリケーションプログラムによって実行された処理内容であって共有オブジェクトリストに記載されたオブジェクトの生成処理と、削除処理と、変更処理とのいずれかの処理内容を前記通信部を介して受信し、前記処理内容を送信した前記アプリケーションサーバ装置以外の前記アプリケーションサーバ装置に受信された前記処理内容を前記通信部を介して送信する管理部と
を備えたことを特徴とする管理装置。
【請求項８】
前記管理部は、
受信された前記処理内容の履歴を管理するオブジェクト管理テーブルを有し、前記処理内容を受信するごとに前記処理内容を前記オブジェクト管理テーブルに記載して前記オブジェクト管理テーブルを更新することを特徴とする請求項７記載の管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、オブジェクトを共有するオブジェクト共有システムに関する。
【背景技術】
【０００２】
以下の説明で使用する「Ｊａｖａ」は登録商標である。
従来のＪａｖａ仮想計算機間を跨ってＪａｖａオブジェクトを共有する方法は、大きく二つ存在した。
（１）一つは、図１８に示すように、共有するＪａｖａオブジェクトを一度データベースに格納し、別のＪａｖａ仮想計算機上のアプリケーションから読み出すことで、Ｊａｖａオブジェクトの共有を実現する方法である。この方法は、アプリケーションで共有するためのロジックを書く必要があり、またデータベースを介することでデータベースの性能に依存し、そこがボトルネックになる課題がある。
（２）もう一つの方法は、図１９に示すように、一部のＡＰサーバ（アプリケーションサーバ）が保有するメモリ・セッション・レプリケーションの機能を使用する方法がある。ＨＴＴＰＳｅｓｓｉｏｎオブジェクトに共有させたいＪａｖａオブジェクトを格納することで、ＡＰサーバがそのＨＴＴＰＳｅｓｓｉｏｎオブジェクトをＡＰサーバ間で自動的にレプリケーションを行うため、別のＪａｖａ仮想計算機上のアプリケーションでＨＴＴＰＳｅｓｓｉｏｎオブジェクトから対象のオブジェクトを取り出すことができ、共有をすることが可能になる。この方法は、メモリ・セッション・レプリケーションの機能をもつＡＰサーバを使用する必要がある。
（３）さらには、専用の情報装置を追加することでＪａｖａオブジェクトを異なったＪａｖａ仮想計算機間で共有する方法も提案されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２６８１２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のＪａｖａオブジェクト共有装置は、以下の課題があった。
（１）利用者がアプリケーション上にＪａｖａオブジェクトを共有するためのコードを記述する必要があった。
（２）共有するＪａｖａオブジェクトを通信するためにＳｅｒｉａｌｉｚａｂｌｅインタフェースを実装する必要があり、コードの修正、再コンパイル作業が発生した。
（３）Ｊａｖａオブジェクトを共有するためにＪａｖａオブジェクト全体を通信するため、ネットワーク負荷が高くなる。
（４）ＡＰサーバが保有する機能を使用した共有方式では、Ｗｅｂ３階層アプリケーション以外には適用できなかった。
（５）データベースを使用する方式では、データベースの性能がボトルネックになる場合があり、共有するオブジェクトのサイズが大きく且つアクセス数が多い大規模システムには適用できない。
【０００５】
この発明は、共有対象オブジェクトを格納するデータベースが不要であり、一部のＡＰサーバのみが保有するメモリ・セッション・レプリケーションの機能の使用が不要であり、かつ、共有対象オブジェクト全体を通信する必要のないシステムの提供を目的とする。
【課題を解決するための手段】
【０００６】
この発明のオブジェクト共有システムは、
アプリケーションプログラムを実行すると共に、前記アプリケーションプログラムの実行に必要な情報を示すオブジェクトのうち複数のアプリケーションプログラムによって共有される共有対象のオブジェクトが記載された共有対象オブジェクトリストを有する複数のアプリケーションサーバ装置と、
前記複数のアプリケーションサーバ装置と通信を行う管理装置と
を備え、
それぞれの前記アプリケーションサーバ装置は、
自身の実行するアプリケーションプログラムによって前記共有オブジェクトリストに記載されたオブジェクトの生成処理と、削除処理と、変更処理とのいずれかの処理が実行された場合には、処理内容を前記管理装置に送信し、
前記管理装置は、
前記処理内容を前記アプリケーションサーバ装置から受信した場合には、前記処理内容を送信した前記アプリケーションサーバ装置以外の前記アプリケーションサーバ装置に受信された前記処理内容を送信し、
前記処理内容を受信した前記アプリケーションサーバ装置は、
受信された前記処理内容に従って、オブジェクトの生成処理と、削除処理と、変更処理とのいずれかの処理を実行することを特徴とする。
【発明の効果】
【０００７】
この発明は、以下が可能となる。
（１）アプリケーション開発者が、アプリケーションの中にＪａｖａオブジェクトを共有するためのコードを記述するのではなく、「設定ファイル」に記述することにより、アプリケーションへの影響がなく可搬性が高い。
（２）一部のＡＰサーバにしか備わっていない機能を使用しないため、Ｗｅｂ３階層アプリケーションだけでなく、通常のアプリケーションにも適用可能である。
（３）データベースを介在させずにメモリ上でＪａｖａオブジェクトの共有を実現するために、処理速度が高速である。
（４）これまでのＪａｖａオブジェクト共有装置のように、Ｊａｖａのオブジェクト全体を転送せず、変更のあった属性だけを転送するため、処理が早くネットワーク負荷も低くなる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１におけるオブジェクト共有システム１００１の動作概要を説明するための図。
【図２】実施の形態１における設定ファイル１０１に記述する項目の一覧。
【図３】実施の形態１における設定ファイル１０１の例。
【図４】実施の形態１におけるオブジェクト共有システム１００１の構成図。
【図５】実施の形態１におけるオブジェクト管理テーブル２０２の例。
【図６】実施の形態１における共有処理（管理装置）フロー。
【図７】実施の形態１における共有処理（変更検知部）フロー。
【図８】実施の形態１における共有処理（変更反映部）フロー。
【図９】実施の形態１における共有オブジェクトが存在しない場合のリカバリー処理フロー。
【図１０】実施の形態１におけるＡＰサーバ装置の障害発生時〜復帰時までの処理フロー。
【図１１】実施の形態２におけるオブジェクト共有システム１００２の構成図。
【図１２】実施の形態３におけるオブジェクト共有システム１００３の構成図。
【図１３】実施の形態３におけるデータレプリケーション処理のフローチャート（クライアント主動）。
【図１４】実施の形態３におけるデータレプリケーション処理のフローチャート（マスター主動）。
【図１５】実施の形態３におけるマスター管理装置の障害発生時の処理のフローチャート。
【図１６】実施の形態４における管理装置、ＡＰサーバ装置の外観の一例を示す図。
【図１７】実施の形態４における管理装置、ＡＰサーバ装置のハードウェア構成の一例を示す図。
【図１８】従来技術（データベースを使用したオブジェクトの共有方法）を示す図。
【図１９】従来技術（レプリケーション機能を使用したオブジェクトの共有方法）を示す図。
【発明を実施するための形態】
【０００９】
実施の形態１．
図１〜図１０を用いて実施の形態１のオブジェクト共有システム１００１を説明する。なお、以下の実施の形態で用いるＪａｖａは登録商標である。
【００１０】
図１は、オブジェクト共有システム１００１の動作概要を説明するための図である。図１を参照して、オブジェクト共有システム１００１の動作概要を説明する。オブジェクト共有システム１００１は、アプリケーションプログラム（以下、アプリケーションともいう）を実行するハードウェアである複数（図１の例では３台）のアプリケーションサーバ装置（以下、ＡＰサーバ装置という）と、複数のＡＰサーバ装置を管理する物理マシンであるレプリケーションサーバ（後述の管理装置に相当）とを備えている。各ＡＰサーバ装置とレプリケーション・サーバとはネットワークに接続され、互いに通信可能である。
【００１１】
＜１＞レプリケーション・サーバ
（１）レプリケーション・サーバは、各レプリケーション・クライアント（各ＡＰサーバ装置）と通信し、アプリケーションの実行に必要な情報であるオブジェクトのうち各ＡＰサーバ装置で実行されるアプリケーションの共有対象となる共有対象オブジェクトの生成、共有対象オブジェクトの削除、共有対象オブジェクトの属性の変更などの情報（処理内容の一例）をやり取りする。
（２）レプリケーション・サーバは、その情報（処理内容）を元に、後述のオブジェクト管理テーブル２０２を使用して各レプリケーション・クライアント単位に共有対象オブジェクトを管理し、レプリケーション・クライアントへ通知する。
（３）図２は、レプリケーション・サーバの有する設定ファイル１０１（共有対象オブジェクトリストの一例）の記載事項を示す図であり、図３は設定ファイル１０１を示す図である。図２、図３に示すように、設定ファイル１０１には、
（ａ）レプリケーション・サーバ（管理装置）のアドレス、
（ｂ）クライアントと通信するためのポート番号、
（ｃ）レプリケーション・サーバ（管理装置）が相互に通信するためのポート番号、
（ｄ）共有するＪａｖａクラスの一覧（共有対象オブジェクトの一例）、
が記述されている。
レプリケーション・サーバは、起動時にレプリケーション・クライアントと通信し、設定ファイル１０１の内容を送信する。これにより各ＡＰサーバ装置は、共有対象オブジェクトを知ることができる。
【００１２】
＜２＞レプリケーション・クライアント
（１）レプリケーション・クライアントは、レプリケーション・サーバから設定ファイル１０１を受信し、共有するべきＪａｖａクラスのリスト（共有対象オブジェクト）を得る。
（２）レプリケーション・クライアントは、ＪＭＸ（Ｊａｖａ  Ｍａｎａｇｅｍｅｎｔ  Ｅｘｔｅｎｓｉｏｎｓ）インタフェースを介して、Ｊａｖａ  ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ：仮想マシン）から共有対象Ｊａｖａクラスの生成、破棄の情報を得ることができる。
（３）レプリケーション・クライアントは、ＪＴＩ（Ｊａｖａ  Ｔｏｏｌ  Ｉｎｔｅｒｆａｃｅ）を介して、レプリケーション・サーバのＪａｖａ  ＶＭから共有対象Ｊａｖａクラスの属性の変更情報（処理内容）を入手したり、また、受信した変更情報に従って属性自体を変更することができる。
（４）レプリケーション・クライアントは、それらの情報をレプリケーション・サーバとやり取りすることで、Ｊａｖａオブジェクトの共有を実現することができる。
【００１３】
（動作概要）
図１に示すように、
（１）Ｓ１において、レプリケーション・サーバは、設定ファイル１０１を各レプリケーション・クライアントに送信する。
（２）Ｓ２において、各レプリケーション・クライアントは、設定ファイルに記載されているオブジェクトの生成あるいは削除あるいは変更が自身の監視するアプリケーションにより実行された場合には、実行内容を示す情報（処理内容）をレプリケーション・サーバに通知する。
（３）Ｓ３において、レプリケーション・サーバはこの情報を受信すると、この情報を送信したレプリケーション・クライアント以外のレプリケーション・クライアントに、受信した情報の内容を送信する。
（４）Ｓ４において、レプリケーション・サーバからこの情報を受信したレプリケーション・クライアントは、受信した情報の内容に従って、該当するオブジェクトの生成あるいは削除あるいは変更を実行する。
【００１４】
以上のＳ１〜Ｓ４の動作により、共有するオブジェクトに関して制約が発生しない。また、メモリ上で処理されるため、速度の速い処理が可能となる。
【００１５】
図４は、オブジェクト共有システム１００１のＡＰサーバ装置、管理装置の構成図である。
【００１６】
（管理装置２０）
管理装置２０ａは、Ｊａｖａオブジェクトの共有を管理するサーバ装置（物理マシン）である。管理部２２ａは、設定ファイル１０１を格納する格納部２０３ａと、メモリ上に作成されたオブジェクト管理テーブル２０２と、Ｊａｖａ仮想計算機２１ａと、Ｊａｖａ仮想計算機２１ａ上で動作することにより各クライアント（各ＡＰサーバ装置）と通信を行う通信部２３ａ、及びＪａｖａ仮想計算機２１ａ上で動作する管理部２２ａとから構成される。
【００１７】
（ＡＰサーバ装置３ａ）
（１）上側のＡＰサーバ装置３ａは、Ｊａｖａ仮想計算機３１ａ上で動作するソフトウェアであるＡＰサーバ機能３２ａ上でアプリケーション３３ａが動作するサーバ装置（物理マシン）である。また、エージェント３４ａもＪａｖａ仮想計算機３１ａ上で動作する。ＡＰサーバ装置３ａ（ＡＰサーバ装置３ｂも同様）は、管理装置２０からはクライアントの位置付けになる。Ｊａｖａ仮想計算機３１ａ、ＡＰサーバ機能３２ａ、アプリケーション３３ａ、エージェント３４ａは、アプリケーション３３ａを実行するアプリケーション実行部を構成する。
（２）また、オブジェクト変更検知部３６ａ（監視部の一例）は、Ｊａｖａ仮想計算機３１ａ上で行われたオブジェクトの生成や変更や削除を検知する。通信部３７ａは、管理装置２０と通信する。格納部３９ａは、設定ファイル１０１を格納する。オブジェクト変更検知部３６ａ、通信部３７ａは、Ｊａｖａ仮想計算機３５ａ上で動作する。
【００１８】
（ＡＰサーバ装置３ｂ）
（１）下側のＡＰサーバ装置３ｂもＡＰサーバ装置３ａと同様の構成であるが、管理装置２０から送信される情報（変更内容）をＪａｖａ仮想計算機３１ｂ上のＪａｖａオブジェクトに反映するオブジェクト変更反映部３６ｂ（反映部の一例）を有する。
（２）尚、オブジェクト変更検知部３６ａとオブジェクト変更反映部３６ｂとは、対として、対象となるＡＰサーバ装置にインストールされているものとする。図４では、説明の便宜からＡＰサーバ装置３ａにはオブジェクト変更検知部３６ａのみを示しＡＰサーバ装置３ｂにはオブジェクト変更反映部３６ｂのみを示しているが、上述のように実際にはオブジェクト変更検知部３６ａとオブジェクト変更反映部３６ｂとは、対としてインストールされている。
【００１９】
（オブジェクト管理テーブル２０２）
図５は、管理装置２０ａが、共有対象のＪａｖａオブジェクトの管理に使用するオブジェクト管理テーブル２０２を示す図である。図５に示すように、オブジェクト管理テーブル２０２は、共有するＪａｖａクラス名、及びそのクラスのプロパティ情報を各クライアント（ＡＰサーバ装置）単位に保有し、またクライアント（ＡＰサーバ装置）から送信された情報に含まれるオブジェクトの生成時刻を示す時間情報、プロパティの更新値および時間情報も合わせて保有する。
【００２０】
（動作の説明）
次に、図４に示したオブジェクト共有システム１００１の動作を説明する。
【００２１】
（管理装置２０）
図６は、管理装置２０ａの動作のフローチャートである。図６を参照してまず管理装置２０ａの動作を説明する。管理装置２０ａでは、管理部２２が起動して（Ｓ１１）、設定ファイル１０１を読み込み（Ｓ１２）、メモリ上にオブジェクト管理テーブル２０２を作成する。設定ファイル１０１には、図２、図３に示したように、
（１）管理装置２０のアドレス、
（２）クライアントと通信するためのポート番号、
（３）管理装置２０が相互に通信するためのポート番号、
（４）共有するＪａｖａクラスの一覧、
が記述されている。
管理部２２ａは、オブジェクト管理テーブル２０２をメモリ上に作成し、通信部２３ａを呼び出してクライアント（ＡＰサーバ装置）からの通信を待つ（Ｓ１３、Ｓ１４）。クライアント（ＡＰサーバ装置３ａ，ｂ）が起動して最初の通信が行われると、管理部２２は、クライアント（ＡＰサーバ装置）のアドレスをオブジェクト管理テーブル２０２に登録し（Ｓ１５）、さらに共有するクラスの情報を登録する（Ｓ１６）。管理部２２ａはクライアント（ＡＰサーバ装置３ａ，３ｂ）からオブジェクトが変更された旨の通信（共有オブジェクトの生成、あるいは変更あるいは削除を示す変更内容）が来ると（Ｓ１４のＮＯ）、その変更内容（通信データ）を解析してオブジェクト管理テーブル２０２を変更すると共に（Ｓ１７）、対象となるクライアント（通信データを送信したＡＰサーバ装置以外のＡＰサーバ装置）に通信部２３ａを使用して受信した変更内容を送信する（Ｓ１８）。以上が管理装置２０ａの動作である。
【００２２】
（変更内容を管理装置２０ａに送信するＡＰサーバ装置３ａ）
図７は、変更内容を管理装置２０ａに送信するＡＰサーバ装置３ａの動作を示すフローチャートである。図７を参照してＡＰサーバ装置３ａのオブジェクト変更検知部３６ａの動作を説明する。まず、オブジェクト変更検知部３６ａが起動する（Ｓ２１）。オブジェクト変更検知部３６ａは、設定ファイル１０１を読込み、管理装置２０ａのアドレス、ポート番号、Ｊａｖａのクラス名の情報を取得する（Ｓ２２）。オブジェクト変更検知部３６ａは、通信部３７ａを呼び出して、自己のクライアント情報を管理装置２０ａに送信する（Ｓ２３）。オブジェクト変更検知部３６ａは、エージェント３４ａを介在させて監視対象のＪａｖａクラスの状態を監視し（Ｓ２４）、設定ファイル１０１に記載されているＪａｖａクラスに関して、生成あるいは削除、あるいは属性に関する変更をエージェント３４ａを介在させて検知し、その変更内容と変更時刻とを通信部３７ａを使用して、管理装置２０ａの管理部２２ａに送信する（Ｓ２５〜Ｓ２８）。
【００２３】
（受信側のＡＰサーバ装置３ｂ）
図８は、他のＡＰサーバ装置によるオブジェクトの変更内容（生成／削除／変更）を自身に反映するＡＰサーバ装置３ｂの動作を示すフローチャートである。図８を参照してＡＰサーバ装置３ａのオブジェクト変更反映部３６ｂの動作を説明する。まず、オブジェクト変更反映部３６ｂが起動して（Ｓ３１）、通信部３７ｂを呼び出して管理装置２０ａとの通信を待つ（Ｓ３２）。オブジェクト変更反映部３６ｂは、通信部３７ｂを介してｊａｖａオブジェクトの生成あるいは削除あるいは変更の具体的な内容を示す変更情報（変更内容）を受信すると、受信した変更情報を解読し、設定ファイル１０１に記載されているＪａｖａクラスであることを確認した後、エージェント３４ｂを介在させて、Ｊａｖａ仮想計算機３１ｂ上に存在するＪａｖａオブジェクトの内容を変更する（Ｓ３３，Ｓ３４）。このオブジェクト変更反映部３６ｂの処理により、共有対象のＪａｖａオブジェクトがＡＰサーバ装置の間で共有される。
【００２４】
（リカバリー処理）
図９は、共有オブジェクトが存在しない場合のリカバリー処理のフローチャートである。図９を参照して、このリカバリー処理をＡＰサーバ装置３ａが行う場合を想定して説明する。ＡＰサーバ装置３ａでオブジェクトに対するアクセスが発生し（Ｓ４１）、必要なオブジェクトが取得できた場合（ｃｌａｓｓＮｏｔＦｏｕｎｄ例外が発生していない場合、Ｓ４２のＮＯ）は、通常の処理が行われる（Ｓ４７）。一方、必要なオブジェクトが取得できない場合（ｃｌａｓｓＮｏｔＦｏｕｎｄ例外が発生した場合、Ｓ４２のＹＥＳ）は、そのオブジェクトが共有対象オブジェクトでない場合（Ｓ４３のＮＯ）は通常の処理が行われる（Ｓ４８）。そのオブジェクトが共有対象オブジェクトである場合（Ｓ４３のＹＥＳ）は、ＡＰサーバ装置３ａは管理装置２０ａから該当する共有オブジェクトの情報を取得する（Ｓ４４）。なお、ＡＰサーバ装置３ａは管理装置２０ａから取得できるのは、管理装置２０ａがオブジェクト管理テーブル２０２によって共有オブジェクトを管理しているからである。そして、ＡＰサーバ装置３ａは、取得した共有オブジェクトをＪａｖａ仮想計算機３１ａ上にインジェクションする（Ｓ４５）。そして、ＡＰサーバ装置３ａは、プログラムポインタを戻して再実行する（Ｓ４６）。
【００２５】
（クライアント障害発生〜復帰）
図１０は、ＡＰサーバ装置（クライアント）の障害発生から復帰までの過程を示すフローチャートである。図１０を参照して、ＡＰサーバ装置３ａに障害の発生からシステム復帰までの過程を説明する。図４の構成においてＡＰサーバ装置３ａで障害が発生すると、負荷分散装置１がＡＰサーバ装置３ａへの振り分けを中止する（Ｓ８１）。次に、クライアントＰＣ（図示していないユーザーのクライアント端末装置）から負荷分散装置１を経由してリクエストが来る（Ｓ８２）。Ｓ８３において他の活動中のＡＰサーバ装置３ｂ（クライアント）は共有オブジェクトが存在するかを判定し、存在する場合（Ｓ８３のＹＥＳ）にはＡＰサーバ装置３ｂは通常の処理を行う。存在しない場合（Ｓ８３のＮＯ）には図９のリカバリー処理を行う（Ｓ８５）。すなわちＡＰサーバ装置３ｂは通信部３７ｂを使用して管理装置２０ａから共有オブジェクトの情報を取得し、共有オブジェクトをインジェクションする（Ｓ８５）。そして、障害が発生したＡＰサーバ装置３ａ（クライアント）の対処が完了（Ｓ９１）すると、ＡＰサーバ装置３ａは起動時に管理装置２０ａから共有オブジェクトの情報を取得し、共有オブジェクトをインジェクションする（Ｓ９２）。そして、負荷分散装置１は、復帰したＡＰサーバ装置３ａへのリクエストの振り分けを再開する（Ｓ９３）。
【００２６】
実施の形態２．
図１１は、実施の形態２のオブジェクト共有システム１００２を示す構成図である。オブジェクト共有システム１００２は、図４のオブジェクト共有システム１００１に対して、各サーバ装置が、アプリケーション３３ａ，３３ｂがＡＰサーバ機能３２ａ，３２ｂ上で動作するＷｅｂアプリケーション型ではなく、直接ＪａｖａＶＭ３１ａ，３１ｂ上で動作するケースである。
【００２７】
実施の形態３．
図１２〜図１５を参照して実施の形態３のオブジェクト共有システム１００３を説明する。実施の形態３のオブジェクト共有システム１００３は、実施の形態１のオブジェクト共有システム１００１（図４）に対して管理装置２０ａに加え、管理装置２０ａによる処理を代替する第２の管理装置２０ｂを更に備えた冗長構成のシステムである。
【００２８】
図１２は、オブジェクト共有システム１００３の構成図である。オブジェクト共有システム１００３は、実施の形態１のオブジェクト共有システム１００１に対して、管理装置２０ｂが追加された構成である。管理装置を多重化することで、一方の管理装置に障害が発生した場合でも、Ｊａｖａオブジェクトの共有が可能になる。
【００２９】
図１３、図１４、図１５を参照して管理装置を多重化した場合の動作を説明する。なお以下では管理装置２０ａをマスターサーバと呼び、管理装置２０ｂをスレーブサーバと呼ぶ。
【００３０】
（ＡＰサーバによる検知処理）
図１３は、冗長構成におけるＡＰサーバ装置の検知処理を示すフローチャートである。図１３では、ＡＰサーバ装置３ａが検知によりデータを送信する場合を想定する。ＡＰサーバ装置３ａは、マスターサーバへデータを送信する（Ｓ５１）。オブジェクト変更検知部３６ａは設定ファイル１０１のサーバ（管理装置）の指定が２台以上かどうかを判定し（Ｓ５２）、２台以上でない場合は処理を終了する（Ｓ５２のＮＯ）。２台以上指定されていると判定すると（Ｓ５２のＹＥＳ）、オブジェクト変更検知部３６ａは、スレーブサーバが動作しているかを確認し（Ｓ５４）、動作していない場合はそのスレーブサーバを設定ファイル１０１から削除する（Ｓ５８）。動作していれば、オブジェクト変更検知部３６ａは通信部３７ａを介してそのスレーブサーバにデータ（変更内容）を送信する（Ｓ５５）。
【００３１】
（マスターサーバによる変更内容の受信）
図１４は、マスターサーバである管理装置２０ａがＡＰサーバ装置３ａから変更内容を受信する場合のフローチャートである。Ｓ６１において、マスターサーバはＡＰサーバ装置３ａから変更内容を受信するとオブジェクト管理テーブルに登録する。Ｓ６２以降の動作は図１３と同様であるが、図１３との違いは、図１３はＡＰサーバ装置３ａが変更内容をスレーブサーバに送信する動作であったのに対して、図１４はマスターサーバが変更内容をスレーブサーバに送信する動作である点である。すなわち、マスターサーバは変更内容を受信すると、自身の変更内容をマスターサーバへ送信したＡＰサーバ装置の動作と同様の動作を実行する（Ｓ６２以降）。
【００３２】
図１５は、冗長構成においてマスターサーバに障害が発生した場合に、処理がスレーブサーバに切り替わる処理のフローチャートである。Ｓ７１において、ＡＰサーバ装置３ａから変更内容をマスターサーバに送信する。Ｓ７２において、オブジェクト変更検知部３６ａは、変更内容の送信が失敗すると一定の回数リトライし（Ｓ７３）、一定回数リトライしても送信できない場合はマスターサーバが動作していないことをログに出力し（Ｓ７４）、２台目以降のスレーブサーバに対してマスターサーバに対して行った送信処理と同様の送信処理を実行し（Ｓ７７）、送信処理の成功したスレーブサーバをマスターサーバに変更する（Ｓ８０）。
【００３３】
実施の形態４．
図１６、図１７を参照して実施の形態４を説明する。実施の形態４は、ＡＰサーバ装置、管理装置をコンピュータで実現する場合を説明する。
【００３４】
図１６は、ＡＰサーバ装置あるいは管理装置の外観の一例を示す図である。ＡＰサーバ装置あるいは管理装置は、いずれも同様の構成のコンピュータであり、以下の説明はＡＰサーバ装置を想定して説明するが、この説明は管理装置にもそのまま当てはまる。
【００３５】
図１６において、ＡＰサーバ装置は、システムユニット８３０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置８１３、キーボード８１４（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス８１５、ＦＤＤ８１７（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、コンパクトディスク装置８１８（ＣＤＤ：Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｄｒｉｖｅ）、プリンタ装置８１９などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。システムユニット８３０はネットワークを介して他のＡＰサーバ装置、管理装置と接続している。
【００３６】
図１７は、コンピュータで実現されるＡＰサーバ装置のハードウェア資源の一例を示す図である。図１７において、ＡＰサーバ装置は、プログラムを実行するＣＰＵ８１０（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。ＣＰＵ８１０は、バス８２５を介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８１２、表示装置８１３、キーボード８１４、マウス８１５、通信ボード８１６、ＦＤＤ８１７、ＣＤＤ８１８、プリンタ装置８１９、磁気ディスク装置８２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置８２０の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。
【００３７】
ＲＡＭ８１２は、揮発性メモリの一例である。ＲＯＭ８１１、ＦＤＤ８１７、ＣＤＤ８１８、磁気ディスク装置８２０等の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部、バッファの一例である。通信ボード８１６、キーボード８１４、ＦＤＤ８１７などは、入力部、入力装置の一例である。また、通信ボード８１６、表示装置８１３、プリンタ装置８１９などは、出力部、出力装置の一例である。
【００３８】
通信ボード８１６は、ネットワーク（ＬＡＮ等）に接続されている。通信ボード８１６は、ＬＡＮに限らず、インターネット、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
【００３９】
磁気ディスク装置８２０には、オペレーティングシステム８２１（ＯＳ）、ウィンドウシステム８２２、プログラム群８２３、ファイル群８２４が記憶されている。プログラム群８２３のプログラムは、ＣＰＵ８１０、オペレーティングシステム８２１、ウィンドウシステム８２２により実行される。
【００４０】
上記プログラム群８２３には、以上の実施の形態の説明において「〜部」として説明した機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ８１０により読み出され実行される。
【００４１】
ファイル群８２４には、以上の実施の形態の説明において、「設定ファイル１０１」、「オブジェクト管理テーブル２０２」として説明したデータや、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明した情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ８１０によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００４２】
また、以上に述べた実施の形態の説明において、データや信号値は、ＲＡＭ８１２のメモリ、ＦＤＤ８１７のフレキシブルディスク、ＣＤＤ８１８のコンパクトディスク、磁気ディスク装置８２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス８２５や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００４３】
また、以上の実施の形態の説明において、「〜部」として説明したものは、「〜手段」、「〜回路」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明したものは、ＲＯＭ８１１に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ８１０により読み出され、ＣＰＵ８１０により実行される。すなわち、プログラムは、以上に述べた「〜部」としてコンピュータを機能させるものである。あるいは、以上に述べた「〜部」の手順や方法をコンピュータに実行させるものである。
【００４４】
以上の実施の形態では、ＡＰサーバ装置、管理装置を説明したが、ＡＰサーバ装置（あるいは管理装置）の動作をコンピュータに実行させるプログラムとして把握することも可能である。あるいは、プログラムを記録したコンピュータ読み取り可能な記録媒体として把握することも可能である。さらに、ＡＰサーバ装置（あるいは管理装置）の動作をＡＰサーバ装置（あるいは管理装置）が行うオブジェクト共有方法として把握することも可能である。
【００４５】
以上の実施の形態では、
Ｊａｖａ仮想計算機上で動作するアプリケーションが使用するオブジェクトを異なったマシンのＪａｖａ仮想計算機間で共有するためのＪａｖａオブジェクト共有システムであって、
第１のＪａｖａ仮想計算機上で動作するアプリケーションによってなされる共有対象であるＪａｖａオブジェクトの変更を検知する検知手段と、
その変更内容を、Ｊａｖａオブジェクトを管理する管理装置に送信する通信手段と、
第２のＪａｖａ仮想計算機上で動作するアプリケーションのＪａｖａオブジェクトにその変更内容を反映する反映手段に変更内容を送信する管理装置の通信手段と、
管理装置の通信手段から受信した変更内容をオブジェクトに反映する反映手段と
を備えるオブジェクト共有システムを説明した。
【００４６】
以上の実施の形態では、
共有するＪａｖａオブジェクト全体を通信するのではなく、変更があった属性のみを通信することで、通信量を削減するＪａｖａオブジェクト共有システムを説明した。
【００４７】
以上の実施の形態では、
設定ファイルにＪａｖａ仮想計算機間で共有するクラス名を記述することで、アプリケーションを修正することなくオブジェクト共有を可能にするＪａｖａオブジェクト共有システムを説明した。
【００４８】
以上の実施の形態では、
Ｊａｖａオブジェクトを管理する管理装置を複数台配備し、それらの間で管理用のオブジェクトを共有することで、いずれかの管理装置に障害が発生した場合でもシステムの運用継続の可能なＪａｖａオブジェクト共有システムを説明した。
【符号の説明】
【００４９】
１  負荷分散装置、１０１  設定ファイル、２ａ，２ｂ  Ｗｅｂサーバ装置、２０ａ，２０ｂ  管理装置、２１ａ，２１ｂ  Ｊａｖａ仮想計算機、２２ａ，２２ｂ  管理部、２３ａ，２３ｂ  通信部、２０２  オブジェクト管理テーブル、３ａ，３ｂ  ＡＰサーバ装置、３ｃ，３ｄ  サーバ装置、３１ａ，３１ｂ  Ｊａｖａ仮想計算機、３２ａ，３２ｂ  ＡＰサーバ機能、３３ａ，３３ｂ  アプリケーション、３４ａ，３４ｂ  エージェント、３５ａ，３５ｂ  Ｊａｖａ仮想計算機、３６ａ  オブジェクト変更検知部、３６ｂ  オブジェクト変更反映部、３７ａ，３７ｂ  通信部、４  ＤＢサーバ装置、５  切替器。
【図１】
2011070382.tif 000003
【図２】
2011070382.tif 000004
【図３】
2011070382.tif 000005
【図４】
2011070382.tif 000006
【図５】
2011070382.tif 000007
【図６】
2011070382.tif 000008
【図７】
2011070382.tif 000009
【図８】
2011070382.tif 000010
【図９】
2011070382.tif 000011
【図１０】
2011070382.tif 000012
【図１１】
2011070382.tif 000013
【図１２】
2011070382.tif 000014
【図１３】
2011070382.tif 000015
【図１４】
2011070382.tif 000016
【図１５】
2011070382.tif 000017
【図１６】
2011070382.tif 000018
【図１７】
2011070382.tif 000019
【図１８】
2011070382.tif 000020
【図１９】
2011070382.tif 000021