(57)【特許請求の範囲】
【請求項１】
クライアント・アプリケーションが最初の一時的な宛先を発生するための要求を生成し、前記要求の受信に応答して、サーバ・アプリケーションが前記最初の一時的な宛先を発生し、前記最初の一時的な宛先に最初の識別子を関連付ける、高可用性環境においてサービスを維持するための方法であって、
前記最初の一時的な宛先に関連付けられた前記最初の識別子を記録するステップと、
前記クライアント・アプリケーションが前記サーバ・アプリケーションに再接続したことに応答して、一時的な宛先を発生するための別の要求を生成するステップと、
前記別の要求中に前記最初の識別子を含めるステップと、
前記別の要求を前記サーバ・アプリケーションに送信するステップと、
前記サーバ・アプリケーションにおいて前記別の要求を受信したことに応答して、前記最初の一時的な宛先が利用可能か否かを判定するステップと、
前記最初の一時的な宛先が利用可能であることに応答して、前記サーバ・アプリケーションによって、前記クライアント・アプリケーションに、前記最初の一時的な宛先に対するアクセスを提供するステップと、
前記最初の一時的な宛先が利用可能でないことに応答して、前記サーバ・アプリケーションによって新しい一時的な宛先を発生するステップと、
前記サーバ・アプリケーションによって、前記新しい一時的な宛先に、前記別の要求における前記最初の識別子を関連付けるステップと、
を含む、方法。
【請求項２】
前記クライアント・アプリケーションを一時的な宛先の所有者として識別するステップを更に含む、請求項１に記載の方法。
【請求項３】
クライアント・アプリケーションが最初の一時的な宛先を発生するための要求を生成するように動作可能であり、前記要求の受信に応答して、サーバ・アプリケーションが前記最初の一時的な宛先を発生するように動作可能であり、更に、前記最初の一時的な宛先に最初の識別子を関連付けるように動作可能である、高可用性環境においてサービスを維持するための装置であって、
前記最初の一時的な宛先に関連付けられた前記最初の識別子を記録するための自動記録装置と、
前記クライアント・アプリケーションが前記サーバ・アプリケーションに再接続したことに応答して、一時的な宛先を発生するための別の要求を生成するための手段と、
前記別の要求中に前記最初の識別子を含めるための照合機と、
前記別の要求を前記サーバ・アプリケーションに送信するための手段と、
前記サーバ・アプリケーションにおいて前記別の要求を受信したことに応答して、前記最初の一時的な宛先が利用可能か否かを判定するための手段と、
前記最初の一時的な宛先が利用可能であることに応答して、前記サーバ・アプリケーションによって、前記クライアント・アプリケーションに、前記最初の一時的な宛先に対するアクセスを提供するための手段と、
前記最初の一時的な宛先が利用可能でないことに応答して、前記サーバ・アプリケーションによって新しい一時的な宛先を発生するための手段と、
前記サーバ・アプリケーションによって、前記新しい一時的な宛先に、前記別の要求における前記最初の識別子を関連付けるための手段と、
を含む、装置。
【請求項４】
前記クライアント・アプリケーションを一時的な宛先の所有者として識別するための手段を更に含む、請求項３に記載の装置。
【請求項５】
コンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行された場合に請求項１から２のいずれか１項に記載の方法のステップを全てコンピュータに実行させるように適合されたプログラム・コード手段を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高可用性環境においてサービスを維持するための方法に関する。
【背景技術】
【０００２】
高可用性環境において、エンティティ（例えばコンピュータ・システム、コンピュータ・プログラム等）が、この環境においていかなる短期停止も認識することなく動作し続けることは有益である。
【０００３】
例えば、メッセージング・サーバがハードウェアの問題のために故障し、その後このメッセージング・サーバが別のコンピュータ上で再起動するように構成されている場合、関連付けられたクライアント・プログラムはいずれも、このクライアント・プログラムに関連付けられたメッセージング・ソフトウェアによって、メッセージング・サーバの新しい位置におけるメッセージング・サーバに対してシームレスに再接続することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
かかる再接続が行われた場合、エンティティ（例えばクライアント・プログラム）がシームレスに動作し続けることができる環境を提供する際に問題が発生する場合がある。
【課題を解決するための手段】
【０００５】
第１の態様によれば、クライアント・アプリケーションが最初の一時的な宛先を発生するための要求を生成し、この要求の受信に応答して、サーバ・アプリケーションが最初の一時的な宛先を発生し、最初の一時的な宛先に最初の識別子を関連付ける、高可用性環境においてサービスを維持するための方法が提供される。この方法は、最初の一時的な宛先に関連付けられた最初の識別子を記録するステップと、クライアント・アプリケーションがサーバ・アプリケーションに再接続したことに応答して、一時的な宛先を発生するための別の要求を生成するステップと、別の要求中に最初の識別子を含めるステップと、を含む。
【０００６】
第２の態様によれば、クライアント・アプリケーションが最初の一時的な宛先を発生するための要求を生成するように動作可能であり、この要求の受信に応答して、サーバ・アプリケーションが最初の一時的な宛先を発生するように動作可能であり、更に、最初の一時的な宛先に最初の識別子を関連付けるように動作可能である、高可用性環境においてサービスを維持するための装置が提供される。この装置は、最初の一時的な宛先に関連付けられた最初の識別子を記録するための自動記録装置と、クライアント・アプリケーションがサーバ・アプリケーションに再接続したことに応答して、一時的な宛先を発生するための別の要求を生成するための手段と、別の要求中に最初の識別子を含めるための照合機と、を含む。
【０００７】
第３の態様によれば、コンピュータ・プログラムであって、このプログラムがコンピュータ上で実行された場合に上述の方法のステップを全て実行するように適合されたプログラム・コード手段を含むコンピュータ・プログラムが提供される。
【０００８】
これより本発明について、以下の図面に示したような好適な実施形態を参照して、一例としてのみ説明する。
【図面の簡単な説明】
【０００９】
【図１】一時的な宛先を用いる高可用性環境に関連付けた従来技術のシステムのブロック図である。
【図２】好適な実施形態に従った、一時的な宛先を用いる高可用性環境に関連付けたシステムのブロック図である。
【図３】好適な実施形態に従ったプロセスに含まれる動作ステップを示すフローチャートである。
【発明を実施するための形態】
【００１０】
本明細書において、「サーバ」および「クライアント」という言葉は例示の目的のためにのみ用いることは理解されよう。
【００１１】
図１の従来技術のシステム（１００）を参照すると、民生用メッセージングの分野において、要求−応答パターンでサーバ・プログラム（１２５）とメッセージを交換することを希望するクライアント・プログラム（１０５）が、一時的な宛先（１１０）（例えばキュー）に対する要求を発生することは一般的である。
【００１２】
一時的な宛先は、クライアント・プログラムによる要求の際に動的に生成され、従って前処理ステップにおいて生成する必要がないので、好都合である。更に、一時的な宛先は、クライアント・プログラムの「寿命」に関連付けられており、クライアントが終了した後は管理手順（例えば一時的な宛先の検出）が必要ないようになっている。この宛先が一時的であるというのは、例えばクライアント・プログラムがメッセージング・サーバから切断した場合またはメッセージング・サーバが停止した場合に自動的に破棄することが可能であるという点である。
【００１３】
典型的に、要求−応答メッセージングの使用を希望するクライアント・プログラム（１０５）に関連付けられたクライアント・メッセージング・ソフトウェア（１３０）が、一時的な宛先を発生するための要求を生成する。
【００１４】
一例において、クライアント・メッセージング・ソフトウェア（１３０）は、メッセージング・サーバ（１１５）に接続し、この要求をメッセージング・サーバ（１１５）に送信する。要求の受信に応答して、メッセージング・サーバ（１１５）は、一時的な宛先（１１０）を発生し、宛先（１１０）の発生中に宛先（１１０）に対して識別子を割り当てる。
【００１５】
クライアント・メッセージング・ソフトウェア（１３０）は、一時的な宛先（１１０）の識別子を判定し、応答メッセージを送信したい位置として識別子を「広告する」ことができる。
【００１６】
クライアント・プログラム（１０５）は、宛先（１１０）の「所有者」として識別されるので、クライアント・プログラム（１０５）は、宛先（１１０）に関連付けられた一定の権利を有することができる。これは例えば、クライアント・プログラム（１０５）がメッセージング・サーバ（１１５）から切断した場合に明示的または暗示的に宛先（１１０）を破棄する能力である。
【００１７】
一例において、クライアント・メッセージング・ソフトウェア（１３０）が要求メッセージを送信した場合、これは、要求メッセージ内に、「〜に応答」宛先として一時的な宛先（１１０）の識別子を含める。要求メッセージは、サーバ・プログラム（１２５）に関連付けられたサーバ・メッセージング・ソフトウェア（１４０）に関連付けられた宛先（１２０）へ、メッセージング・サーバ（１１５）を用いて送信される。サーバ・メッセージング・ソフトウェア（１４０）からの応答メッセージは、「〜に応答」宛先によって識別された一時的な宛先（１１０）へ、メッセージング・サーバ（１１５）を用いて送信される。
【００１８】
高可用性環境において、クライアント・プログラム（１０５）が、例えばメッセージング・サーバ（１１５）のいかなる短期停止も認識することなく動作し続けることは有益である。例えば、メッセージング・サーバ（１１５）が故障したが、別のコンピュータ上で再起動するように構成されている場合、クライアント・プログラム（１０５）は、クライアント・メッセージング・ソフトウェア（１３０）によって、メッセージング・サーバ（１１５）の新しい位置におけるメッセージング・サーバ（１１５）に対してシームレスに再接続することができる。
【００１９】
しかしながら、例えばメッセージング・サーバ（１１５）の故障のためにクライアント・プログラム（１０５）がメッセージング・サーバ（１１５）に接続されなかった期間があったという理由で、クライアント・プログラム（１０５）の一時的な宛先（１１０）は典型的に破棄される。例えばネットワーク・エラーのために接続が中断した場合は、メッセージング・サーバが停止していないので、一時的な宛先（１１０）は通常は破棄されないことは理解されよう。
【００２０】
従来技術によれば、再接続プロセスの一部として新しい一時的な宛先が生成された場合、この新しい一時的な宛先は新しい識別子を有する。新しい識別子は、切断前にクライアント・メッセージング・ソフトウェア（１３０）によって用いられた識別子と一致しない。
【００２１】
クライアント・プログラム（１０５）は再接続を認識しないので、クライアント・メッセージング・ソフトウェア（１３０）は、最初の一時的な宛先（１１０）の最初の識別子を、「〜に応答」宛先として広告し続ける。しかしながら、最初の一時的な宛先（１１０）がもはや存在しないので、クライアント・メッセージング・ソフトウェア（１３０）は再接続の後に応答メッセージを受信することができない。
【００２２】
この問題に対する１つの解決策は、クライアント・メッセージング・ソフトウェア（１３０）があらゆる変更を認識することを保証するために、一時的な宛先の識別子を繰り返し要求するようにクライアント・メッセージング・ソフトウェア（１３０）を構成することである。しかしながら、これは、高可用性でない環境には不必要である。かかる環境におけるクライアント・プログラムは切断されず、続いて再接続もされないからである。更に、高可用性の環境においては、クライアント・プログラムが、コストが高く複雑である再構成を行わなければならない（例えばクライアント・プログラムに関連付けたコードを修正しなければならない）。
【００２３】
別の解決策は、高可用性環境における動作を希望するクライアント・プログラムが一時的な宛先を用いないことを推奨することである。しかしながら、これも望ましい解決策ではない。
【００２４】
好適な実施形態によれば、図２に示す改良したシステム（２００）が提供される。
【００２５】
システム（２００）は、要求−応答パターンでサーバ・プログラム（２３５）とメッセージを交換するように動作可能なクライアント・プログラム（２０５）を含む。
【００２６】
クライアント・プログラム（２０５）は、自動記録装置（２１０）を有するクライアント・メッセージング・ソフトウェア（２１５）を含む。
【００２７】
前処理ステップにおいて、クライアント・メッセージング・ソフトウェア（２１５）はメッセージング・ソフトウェア（２２５）に接続する。図３を参照すると、クライアント・メッセージング・ソフトウェア（２１５）は、一時的な宛先を発生するための要求を生成し（ステップ３００）、メッセージング・サーバ（２２５）に送信する。
【００２８】
要求の受信に応答して、メッセージング・サーバ（２２５）は一時的な宛先を発生する（本明細書において最初の一時的な宛先と称する）（２２０）。
【００２９】
メッセージング・サーバ（２２５）は、最初の一時的な宛先（２２０）に識別子（本明細書において最初の識別子と称する）を割り当て、この最初の識別子をクライアント・メッセージング・ソフトウェア（２１５）に提供する。
【００３０】
また、メッセージング・サーバ（２２５）は、クライアント・プログラム（２０５）を最初の一時的な宛先の「所有者」として関連付けるので、クライアント・プログラム（２０５）は、宛先（２２０）に関連付けられた一定の権利を有することができる。
【００３１】
従来技術におけるように、一時的な宛先（２２０）が一時的であるというのは、例えばクライアント・プログラム（２０５）がメッセージング・サーバ（２２５）から切断した場合またはメッセージング・サーバ（２２５）が停止した場合に自動的に破棄されるという点である。
【００３２】
一例において、クライアント・メッセージング・ソフトウェア（２１５）が要求メッセージを送信した場合、これは、要求メッセージ内に、「〜に応答」宛先として最初の識別子を含める。応答メッセージは、サーバ・メッセージング・ソフトウェア（２４０）によって、最初の識別子により識別される最初の宛先（２２０）に、メッセージング・サーバ（２２５）を用いて送信される。
【００３３】
好適な実施形態によれば、図３を参照して、ステップ３０５において、自動記録装置（２１０）は、メッセージング・サーバ（２２５）から受信した最初の識別子を記憶装置に記録する。
【００３４】
ステップ３１０において、クライアント・プログラム（２０５）が切断されていない場合、クライアント・プログラム（２０５）は続いて動作を実行する（ステップ３５０）。プロセスは、クライアントが切断されたか否かを更に（例えば一定間隔で）チェックする。
【００３５】
クライアント・プログラム（２０５）が切断されている場合、クライアント・プログラム（２０５）は、クライアント・プログラム（２０５）に切断を知らせる通知を受信する。
【００３６】
この通知に応答して、クライアント・メッセージング・ソフトウェア（２１５）は、クライアント・プログラム（２０５）をメッセージング・サーバ（２２５）に再接続する試みを行う（ステップ３１５）。
【００３７】
クライアント・メッセージング・ソフトウェア（２１５）がクライアント・プログラム（２０５）をメッセージング・サーバ（２２５）に再接続した（典型的にクライアント・プログラム（２０５）は介入せずそれについて知ることもない）ことに応答して、クライアント・メッセージング・ソフトウェア（２１５）は、一時的な宛先を発生するための要求を生成する（ステップ３２０）。
【００３８】
好ましくは、好適な実施形態の装置（２５０）に関連付けられた照合機（２５５）が、自動記録装置（２１０）によって記憶装置に記録された最初の識別子を検索する。
【００３９】
ステップ３２５において、照合機（２５５）は、最初の識別子を要求中に含める。
【００４０】
最初の識別子は、最初の一時的な宛先（２２０）が発生したときにメッセージング・サーバ（２２５）によって発生されたことに留意すべきである。しかしながら、好適な実施形態によれば、最初の識別子は、要求における入力として提供するために記録され用いられる。
【００４１】
ステップ３３０において、クライアント・メッセージング・ソフトウェア（２１５）は、要求をメッセージング・サーバ（２２５）に送信する。
【００４２】
要求の受信に応答して、ステップ３３５においてメッセージング・サーバ（２２５）は、最初の一時的な宛先（２２０）が破棄されたか否かを判定する。
【００４３】
メッセージング・サーバ（２２５）が、最初の一時的な宛先（２２０）が破棄されていないと判定したことに応答して（例えば再接続がネットワーク・エラーのためであり、メッセージング・サーバの可用性が遮断されたからではないため）、ステップ３４５において、最初の一時的な宛先（２２０）の使用を継続し、メッセージング・サーバ（２２５）は、最初の一時的な宛先（２２０）の所有者として、再接続したクライアント・プログラム（２０５）を関連付ける。
【００４４】
メッセージング・サーバ（２２５）が、最初の一時的な宛先（２２０）が破棄されたと判定したことに応答して、メッセージング・サーバ（２２５）は新しい一時的な宛先を発生する（ステップ３４０）。
【００４５】
メッセージング・サーバ（２２５）は、照合機（２５５）によって要求に追加された最初の識別子を、新しい一時的な宛先に関連付ける。
【００４６】
また、メッセージング・サーバ（２２５）は、新しい一時的な宛先の所有者として、再接続したクライアント・プログラム（２０５）を関連付ける。
【００４７】
好都合なことに、最初の識別子が維持されて用いられているので、クライアント・プログラム（２０５）は最初の一時的な宛先（２２０）が取り替えられたことを知る必要はない。
【００４８】
好都合なことに、最初の一時的な宛先が生成されたときにクライアント・プログラム（２０５）が最初に取得した最初の識別子が有効なままであるので、クライアント・プログラム（２０５）は応答メッセージを受信し続ける。
【００４９】
好都合なことに、好適な実施形態の機構を用いることによって、要求−応答メッセージング・パターンを用いる既存のクライアント・プログラムを採用し、それらを修正せずに高可用性環境へと展開することができる。
【００５０】
好都合なことに、かかる環境においても引き続き一時的な宛先をクライアント・プログラムによって使用可能である。
【００５１】
本発明の好適な実施形態の方法の全てまたは一部が、この方法のステップを実行するように構成された論理要素を含む論理装置または複数の論理装置において適切かつ有用に具現化可能であること、および、かかる論理要素がハードウェア構成要素、ファームウェア構成要素、またはそれらの組み合わせを含むことができることは、当業者には明らかであろう。
【００５２】
本発明の好適な実施形態に従った論理機構の全て又は一部が、この方法のステップを実行するための論理要素を含む論理装置において適切に具現化可能であること、および、かかる論理要素が、例えばプログラマブル論理アレイまたは特定用途向け集積回路における論理ゲート等の構成要素を含むことができることも、当業者には等しく明らかであろう。かかる論理機構は更に、例えば、固定または伝送可能キャリア媒体を用いて記憶または伝送することができる仮想ハードウェア記述言語を用いたアレイまたは回路において論理構造を一時的または永久的に確立するためのイネーブル要素（enabling element）において具現化することができる。
【００５３】
また、上述した方法および機構は、１つ以上のプロセッサ（図には示していない）上で動作するソフトウェアにおいて全体的または部分的に適切に実行可能であり、更に、このソフトウェアは、磁気または光ディスク等のいずれかの適切なデータ・キャリア（これも図には示していない）上で担持される１つ以上のコンピュータ・プログラム要素の形態で提供可能であることは認められよう。同様に、データ伝送のためのチャネルは、全ての記述の記憶媒体ならびに有線または無線信号担持媒体等の信号担持媒体を含むことができる。
【００５４】
本発明は、更に、コンピュータ・システムと共に用いられるコンピュータ・プログラムとして適切に具現化することができる。かかる実施は一連のコンピュータ読み取り可能命令を含むことができ、これは、例えばディスケット、ＣＤ−ＲＯＭ、ＲＯＭ、もしくはハード・ディスクのようなコンピュータ読み取り可能媒体等のタンジブルな媒体上に固定されるか、または、モデムもしくは他のインタフェース・デバイスを介して、光もしくはアナログ通信線を含むがこれらに限定されないタンジブルな媒体上で、もしくはマイクロ波、赤外線、もしくは他の伝送技法を含むがこれらに限定されない無線技法を用いてインタンジブルに、コンピュータ・システムに伝送可能である。一連のコンピュータ読み取り可能命令は、本明細書に前述した機能の全てまたは一部を具現化する。
【００５５】
かかるコンピュータ読み取り可能命令は、多くのコンピュータ・アーキテクチャまたはオペレーティング・システムと共に用いられる多数のプログラミング言語で記述することができることは、当業者には認められよう。更に、かかる命令は、半導体、磁気、もしくは光を含むがこれらには限定されない現在および将来のいずれかのメモリ技術を用いて記憶するか、または、光、赤外線、もしくはマイクロ波を含むがこれらには限定されない現在または将来のいずれかの通信技術を用いて伝送することができる。かかるコンピュータ・プログラムは、例えば収縮包装されたソフトウェアのような印刷文書もしくは電子文書が付属する着脱可能媒体として分配し、例えばシステムＲＯＭもしくは固定ディスク上にコンピュータ・システムによって予めロードし、または、例えばインターネットもしくはワールド・ワイド・ウェブのようなネットワーク上でサーバもしくは電子掲示板から分配することが考えられる。
【００５６】
代替案において、本発明の好適な実施形態は、コンピュータ・プログラム・コードを展開するステップを含む、サービスを展開するコンピュータ実施方法の形態で実現することができる。このコードは、コンピュータ・インフラストラクチャに展開されてそこで実行されると、前記コンピュータ・システムに前述の方法のステップを全て実行させる。
【００５７】
本発明の範囲から逸脱することなく前述の例示的な実施形態に対して多くの改良および修正を実行可能であることは、当業者には明らかであろう。
【図１】
0005552154.tif 000002
【図２】
0005552154.tif 000003
【図３】
0005552154.tif 000004