(57)【要約】【課題】      耐障害性を有しつつシステム性能を改善するためのメッセージ記録手法の動的切り替え方法を提供する。【解決手段】  本発明の一実施形態においては、分散型システムの性能を改善させるために、メッセージ記録手法を動的に切り替える方法が実現される。この分散型システムは、ネットワークを介してメッセージを送受信するクライアント装置とサーバ装置とを含む。この切り替え方法には、サーバ装置のシステム負荷と、クライアント装置とサーバ装置の間でメッセージを伝達するネットワークの遅延とを計測する過程が含まれる。さらに、この切り替え方法には、システム負荷とその閾値の大小及びネットワーク遅延とその閾値の大小の測定に基づき、クライアントサイドでのメッセージ記録手法とサーバサイドでのメッセージ記録手法の少なくとも一つを選択する過程が含まれる。【選択図】    図１
2004192647.tif 000002
【特許請求の範囲】
【請求項１】
クライアントサイドでのメッセージ記録手法を実行することが可能であるクライアント装置と、サーバサイドでのメッセージ記録手法を実行することが可能であるサーバ装置とを備え、該クライアント装置及び該サーバ装置がネットワークを介してメッセージを送受信する分散型システムの性能を改善させるためのメッセージ記録手法の動的切り替え方法であって、
前記クライアント装置及びサーバ装置により実行されるアプリケーションのアプリケーション応答時間を計測する過程と、
前記サーバ装置のシステム負荷を計測する過程と、
前記メッセージのネットワーク遅延を計測する過程と、
前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも大きく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも小さい場合には、前記クライアントサイドでのメッセージ記録手法を選択し、
前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも小さく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも大きい場合には、前記クライアントサイドでのメッセージ記録手法と前記サーバサイドでのメッセージ記録手法とをともに選択し、
前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも小さく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも小さい場合には、前記クライアントサイドでのメッセージ記録手法或いは前記サーバサイドでのメッセージ記録手法の少なくともひとつを選択し、
前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも大きく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも大きい場合には、前記クライアントサイドでのメッセージ記録手法と前記サーバサイドでのメッセージ記録手法とをともに選択する過程と
を有するメッセージ記録手法の動的切り替え方法。
【請求項２】
メッセージ記録手法を実行可能であり、メッセージ記録手法を実行する受信装置とネットワークを介してメッセージの送受信を行う送信装置であって、
前記送信装置により実行されるアプリケーションのアプリケーション応答時間を計測する手段と、
前記送信装置のシステム負荷を計測する手段と、
前記メッセージのネットワーク遅延を計測する手段と、
前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも大きく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも小さい場合には、前記受信装置にメッセージ記録手法を実行させ、
前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも小さく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも大きい場合には、前記受信装置及び前記送信装置にメッセージ記録手法を実行させ、
前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも小さく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも小さい場合には、前記受信装置または前記送信装置の少なくともひとつにメッセージ記録手法を実行させ、
前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも大きく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも大きい場合には、前記受信装置及び前記送信装置にメッセージ記録手法を実行させる手段と
を備える送信装置。
【請求項３】
メッセージ記録手法を実行可能であり、メッセージ記録手法を実行する送信装置とネットワークを介してメッセージの送受信を行う受信装置であって、
前記受信装置により実行されるアプリケーションのアプリケーション応答時間を計測する手段と、
前記送信装置により計測された該送信装置のシステム負荷を受信する手段と、
前記メッセージのネットワーク遅延を計測する手段と、
前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも大きく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも小さい場合には、前記受信装置にメッセージ記録手法を実行させ、
前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも小さく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも大きい場合には、前記受信装置及び前記送信装置にメッセージ記録手法を実行させ、
前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも小さく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも小さい場合には、前記受信装置または前記送信装置の少なくともひとつにメッセージ記録手法を実行させ、
前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも大きく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも大きい場合には、前記受信装置及び前記送信装置にメッセージ記録手法を実行させる手段と
を備える受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は耐障害性（フォールト・トレラント）コンピュータシステム全般に係り、特に、同システムにおいてシステム性能を改善させるために、計測されたアプリケーション応答時間、システム負荷、及びネットワーク遅延に基づいてメッセージの記録手法を動的に切り替える方法に関する。
【背景技術】
【０００２】
分散型システムにおいて、耐障害技術は、Ｅコマースやデータベーストランザクション、或いは企業間取引（Ｂ２Ｂ）等のユーザ・クリティカルなアプリケーションの稼働の信頼性を確保する重要な技術のひとつである。分散型システムとは、通信ネットワークに相互接続され、協働してアプリケーションを実行する通信機器群のことである。例えば、インターネットは複数のネットワークを互いに接続した巨大なネットワークであり、Ｅコマースや株取引、オンラインオークション等の個人的活動から企業間取引に及ぶまでのさまざまな活動を行うために、コンピュータどうしを世界的な規模で接続している。耐障害技術は、アプリケーションプロセスや制御装置、通信メカニズム等の重要なシステムコンポーネントの障害を遮蔽することで、分散型システムの運用にユーザの視点からの信頼性を与えている。
【０００３】
モバイルインターネットの出現に伴い、モバイル機器で遠隔のＷｅｂサーバによるＷｅｂサービスにアクセスするために、実質的に短時間駆動型、データ駆動型、双方向型、或いは対話型のアプリケーションが利用されることがよくある。Ｗｅｂサービスにおいては、インターネットを介して情報を共有することを可能にするためにＨＴＴＰプロトコルが用いられている。モバイル機器によるＷｅｂサービスにおいては、ユーザはデスクトップＰＣ（パーソナルコンピュータ）の環境と同等か、或いはそれ以上の信頼性を要求する。
【０００４】
メッセージングサービスは、アプリケーションの指定する配送セマンティクス（例えば、配送回数が最高１回、最低１回、或いはちょうど１回のいずれか、等）に従ってメッセージが配送されるため、アプリケーションが高信頼性のＷｅｂサービスへのアクセスを求める場合の一般的な通信手段となっている。メッセージ・パッシング方式で通信を行うモバイルインターネットアプリケーションにおいては、耐障害性はメッセージ記録を行うことにより実現されている。メッセージ記録とは、アプリケーションが無停止稼働中の通信状態を記録しておく耐障害性機構のことである。記録されたメッセージを利用することにより、アプリケーションは、制御装置やネットワークに障害が発生した場合に通信状態を復旧させることが可能となる。
【０００５】
あるシステムにおいては、許容できる障害の種類や程度により、異なるメッセージ記録手法が使用される。しかしながら、いずれのメッセージ記録手法を用いても、無停止稼働中においてはメッセージ記録はシステムに対して負荷となるため、耐障害性とシステム性能はトレードオフの関係にある。すなわち、耐障害性はシステム性能を犠牲にして成り立つものであり、いずれのメッセージ記録手法もシステム性能を低下させ得るものである。しかも、あるメッセージ記録手法を原因としたシステムの変化が、この耐障害性とシステム性能のバランスを崩すことがある。この一例としては、ネットワークの状態が変化したり、モバイル機器のバッテリが切れたり、モバイル機器にＷｅｂサービスを提供しているＷｅｂサーバの負荷が増大したりすることが挙げられる。
【０００６】
このような状況においては、無停止稼働中に最適なメッセージ記録手法を選択し、アプリケーションの通信状態を記録することが重要である。したがって、システム性能を改善させるとともにより有効な耐障害性を有するメッセージ記録手法を選択し、いつその手法に切り替えるかを決定する方法が求められている。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は上述した事情に鑑みてなされたものであり、その目的は、耐障害性を有しつつシステム性能を改善するためのメッセージ記録手法の動的切り替え方法を提供することにある。
【課題を解決するための手段】
【０００８】
上述の課題を解決するために、本発明は、クライアントサイドでのメッセージ記録手法を実行することが可能であるクライアント装置と、サーバサイドでのメッセージ記録手法を実行することが可能であるサーバ装置とを備え、該クライアント装置及び該サーバ装置がネットワークを介してメッセージを送受信する分散型システムの性能を改善させるためのメッセージ記録手法の動的切り替え方法であって、前記クライアント装置及びサーバ装置により実行されるアプリケーションのアプリケーション応答時間を計測する過程と、前記サーバ装置のシステム負荷を計測する過程と、前記メッセージのネットワーク遅延を計測する過程と、前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも大きく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも小さい場合には、前記クライアントサイドでのメッセージ記録手法を選択し、前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも小さく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも大きい場合には、前記クライアントサイドでのメッセージ記録手法と前記サーバサイドでのメッセージ記録手法とをともに選択し、前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも小さく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも小さい場合には、前記クライアントサイドでのメッセージ記録手法或いは前記サーバサイドでのメッセージ記録手法の少なくともひとつを選択し、前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも大きく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも大きい場合には、前記クライアントサイドでのメッセージ記録手法と前記サーバサイドでのメッセージ記録手法とをともに選択する過程とを有するメッセージ記録手法の動的切り替え方法を提供する。
【０００９】
また、本発明は、メッセージ記録手法を実行可能であり、メッセージ記録手法を実行する受信装置とネットワークを介してメッセージの送受信を行う送信装置であって、前記送信装置により実行されるアプリケーションのアプリケーション応答時間を計測する手段と、前記送信装置のシステム負荷を計測する手段と、前記メッセージのネットワーク遅延を計測する手段と、前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも大きく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも小さい場合には、前記受信装置にメッセージ記録手法を実行させ、前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも小さく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも大きい場合には、前記受信装置及び前記送信装置にメッセージ記録手法を実行させ、前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも小さく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも小さい場合には、前記受信装置または前記送信装置の少なくともひとつにメッセージ記録手法を実行させ、前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも大きく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも大きい場合には、前記受信装置及び前記送信装置にメッセージ記録手法を実行させる手段とを備える送信装置を提供する。
【００１０】
或いは、本発明は、メッセージ記録手法を実行可能であり、メッセージ記録手法を実行する送信装置とネットワークを介してメッセージの送受信を行う受信装置であって、前記受信装置により実行されるアプリケーションのアプリケーション応答時間を計測する手段と、前記送信装置により計測された該送信装置のシステム負荷を受信する手段と、
前記メッセージのネットワーク遅延を計測する手段と、前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも大きく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも小さい場合には、前記受信装置にメッセージ記録手法を実行させ、前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも小さく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも大きい場合には、前記受信装置及び前記送信装置にメッセージ記録手法を実行させ、前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも小さく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも小さい場合には、前記受信装置または前記送信装置の少なくともひとつにメッセージ記録手法を実行させ、前記アプリケーション応答時間がアプリケーション応答時間の閾値よりも大きく、かつ、前記システム負荷がシステム負荷の閾値よりも大きく、かつ、前記ネットワーク遅延がネットワーク遅延の閾値よりも大きい場合には、前記受信装置及び前記送信装置にメッセージ記録手法を実行させる手段とを備える受信装置を提供する。
【発明の効果】
【００１１】
本発明によれば、アプリケーション応答時間、システム負荷、及びネットワーク遅延の測定に基づいてメッセージ記録手法を動的に切り替えることによって、耐障害性を有しつつシステム性能を改善させることが可能となり、システムの信頼性を向上させることが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しながら、本発明の一実施形態について詳細に説明する。ここに開示される本発明の実施形態は、高信頼性メッセージングシステムを背景として説明される。このシステムは、メッセージに基づいて動的に再設定が可能な耐障害性を有する通信機構である。しかしながら、ここに開示される原理は種々多様のシステムや制御機器に適用することも可能であると認められる。
【００１３】
図１には、クライアント／サーバアーキテクチャを有する典型的な分散型システム１０内部における、代表的な高信頼性メッセージングシステム（ＲＭＳ）１８の一例が示されている。なお、クライアント／サーバアーキテクチャのみが本発明を実施する手段なのではなく、例えばサーバ装置とクライアント装置の区別のないピアツーピアのようなネットワーク形態に基づく分散型システムにおいても本発明が実施可能であるということは、当業者において認識されるであろう。
【００１４】
分散型システム１０はネットワーク１２を備え、このネットワーク１２にはクライアント／サーバアプリケーション２４を互いに実行するクライアント装置１４及びサーバ装置１６が接続されている。ネットワーク１２は、例えば有線のＬＡＮ（Local Area Network）や、ＩＥＥＥ８０２．１１ｂ（Ｗｉ−Ｆｉ）無線ＬＡＮ，Ｂｌｕｅｔｏｏｔｈ（登録商標）ネットワーク、及びＧＰＲＳ（General Packet Radio Service）等の携帯電話網である。クライアント装置１４には、例えばデスクトップ型ＰＣ，ノート型ＰＣ，ＰＤＡ（Personal Digital Assistant）、携帯電話、或いはその他のコンピュータ装置である。クライアント装置１４は、好ましくは少なくとも１つのバスを介して他の各部と接続されて特定のタスクを実行するプロセッサ３０によって制御される。具体的には、クライアント装置１４は、揮発性メモリ３２と、情報を格納する固定記憶域３４とを備える。また、クライアント装置１４は、ユーザインターフェース情報をディスプレイ３８に伝送するディスプレイアダプタ３６を備えている。入力装置４０は例えばキーボードであり、ユーザからの入力を受け付ける。サーバ装置１６は、例えばネットワーク１２を管理するネットワークサーバや、ＷＷＷ（World Wide Web）上の文書（Ｗｅｂページ）の情報を配信するＷｅｂサーバである。サーバ装置１６は、好ましくはプロセッサ５０に制御され、少なくとも１つのバスを介して揮発性メモリ５２と固定記憶域５４に接続される。なお、このクライアント装置１４とサーバ装置１６の示されたハードウェア構成例は、本発明のハードウェア構成をこのように限定するものではなく、発明の理解を容易ならしめるためのひとつの実例として示されている。当業者においては、その他のハードウェア構成を採ることも可能であることは容易に理解されるであろう。
【００１５】
クライアント／サーバアプリケーション２４は、好ましくはＨＴＴＰ（HyperText Transfer Protocol）プロトコルを介して相互に要求と応答の授受を行う対話型アプリケーションである。クライアント／サーバアプリケーション２４は、ＲＭＳ１８を用いてネットワーク１２全域とメッセージを送受信することにより、通信を行う。
【００１６】
ＲＭＳ１８は、クライアント装置１４で実行されるクライアントモジュール２０と、サーバ装置１６で実行されるサーバモジュール２２とを備える。ＲＭＳ１８は、特定用途向けの配送セマンティックスによる、ネットワーク１２を介したメッセージ配信の信頼性を確保している。具体的には、ＲＭＳ１８は、ＨＴＴＰプロトコルを用いて、クライアント／サーバアプリケーション２４へのメッセージの同期配信を実現している。ここで、メッセージ同期配信とは、配信時間制限のある状況でのメッセージ配信のことである。
【００１７】
例えば、クライアント／サーバアプリケーション２４は、クライアント装置１４上で実行されるＷｅｂブラウザ等のクライアントアプリケーション２６を備えている。さらに、クライアント／サーバアプリケーション２４は、サーバ装置１６上で実行されるＷｅｂサーバソフトウェア等のサーバアプリケーション２８を備えている。ここで、クライアントアプリケーション２６は、ユーザがサーバアプリケーション２８と通信するためのユーザインターフェースを提供している。ユーザは、クライアントアプリケーション２６において選択を行うことで、タスクを完了させるための対話を開始する。この選択の例としては、Ｗｅｂページを取得するためにＵＲＬ（Uniform Resource Locator）リンクをクリックすることや、ＨＴＭＬにおけるフォームデータの送信をするためにブラウザ上に表示されたボタンをクリックすることが挙げられる。この選択は、クライアントアプリケーション２６がＲＭＳ１８のクライアントモジュール２０を介し、ＨＴＴＰプロトコルに従ってサーバアプリケーション２８へ要求メッセージを送信することで行われる。それぞれの選択、すなわち要求メッセージは、サーバアプリケーション２８からの応答をもたらす。具体的には、サーバアプリケーション２８は要求メッセージに基づきある処理手続を実行し、ＲＭＳ１８のサーバモジュール２２を介して、クライアントアプリケーション２６へ応答メッセージを返信する。
【００１８】
選択プロセスは、ユーザタスクが完了するまで続けられる。対話は、クライアント装置１４とサーバ装置１６との間でやりとりされる、要求メッセージとそれに対応する応答メッセージの１対からなる。対話シーケンスとは、ユーザタスクが完了するか、或いは障害が発生するまでの対話を実行順に全て示した集合である。
【００１９】
ＲＭＳ１８は、耐障害性を確保するために、分散型システム１０が通常の無停止稼働を行っている間のメッセージを複数記録する。それぞれのメッセージは、対話における要求または応答を表している。また、メッセージは、対話シーケンス単位で記録される。記録されたメッセージは、対話シーケンス（ユーザタスク）が完了するまでは廃棄されない。
【００２０】
ＲＭＳ１８は、クライアント装置１４またはサーバ装置１６のいずれかにおいて、受信及び送信するメッセージを記録している。具体的には、ネットワーク１２からＲＭＳ１８によって受信されたメッセージは、クライアントアプリケーション２６或いはサーバアプリケーション２８に配送される前に記録される。また、クライアントアプリケーション２６或いはサーバアプリケーション２８からＲＭＳ１８が受信したメッセージは、ネットワーク１２に送信される前に記録される。ＲＭＳ１８は、上述のように、好ましくはメッセージを同期して記録している。同期記録はより高い信頼性を保証し、非同期の記録よりも迅速かつ簡便に障害からの復旧が可能である。
【００２１】
具体的には、サーバサイドでのクライアントサイドからの要求メッセージの処理とメッセージの記録は、以下のように行われる。サーバ装置１６に到達するクライアントサイドからの各要求メッセージは、例えばＴＣＰ／ＩＰキュー等の通信キューに入力される。その後、クライアントサイドからの要求メッセージは、サーバ装置１６の固定記憶域５４（例えばハードディスク）に記録される。クライアントサイドの要求メッセージは、この記録後、サーバアプリケーションキューに入力される。サーバアプリケーション２８はマルチスレッドであり、複数の要求メッセージを同時に処理する。サーバアプリケーション２８の各スレッドは、サーバアプリケーションキューから未処理の要求を取得し、これを処理して応答を生成する。このときサーバの応答はサーバ装置１６の固定記憶域５４に記録され、その後クライアントアプリケーション２６へ送信される。
【００２２】
ＲＭＳ１８は、耐障害性とシステム性能のトレードオフを異ならせて、複数のメッセージ記録手法を実行することができる。例えば、ＲＭＳ１８は、クライアント装置１４のみ、サーバ装置１６のみ、或いはクライアント装置１４とサーバ装置１６の両方が無停止稼働している間のメッセージを記録することができる。さらに、ＲＭＳ１８はメッセージ記録手法を動的に切り替え、再設定することができる。
【００２３】
クライアントサイドでの記録、サーバサイドでの記録、及びクライアントサイドとサーバサイド両方での記録を含む記録手法の選択によって、ユーザの知覚上のシステム性能と実際のシステム性能の双方が影響を受けることがある。ユーザの知覚上のシステム性能を測定するのに有益な基準のひとつに、アプリケーション応答時間、すなわち「ユーザが要求を送信してから応答を受信するまでにユーザが待たなければならない時間」がある。これは、要求が所定の制限時間内に満たされない場合にはユーザがアプリケーションを停止してしまうことが知られているためである。
【００２４】
ユーザによるアプリケーションとの対話の時間的な並びは、具体的には図２に示される通りである。ユーザの対話は、思考時間ＴＴとアプリケーション応答時間Ｗのいずれかを費やされて進行する。それぞれの思考時間ＴＴの終了時には、ユーザはクライアントアプリケーション２６と対話を開始し、応答を待つ。このとき、上述したように、クライアントアプリケーション２６はサーバアプリケーション２８に要求を送信する。サーバアプリケーション２８は、要求に対していくつかの処理を実行し、クライアントアプリケーション２６に応答を送り返す。サーバ装置１６における処理には、プロセッサによる演算と、クライアント装置１４へ送り返されるべき応答の構成と復元に相当する一連のディスク入出力（Ｉ／Ｏ）操作とが含まれる。耐障害性を実現するために、要求メッセージと応答メッセージは、上述したようにクライアント装置１４とサーバ装置１６少なくとも一方に記録される。
【００２５】
したがって、クライアントアプリケーション２６の応答の到着を待たなければならない時間の合計は、式１で与えられる。
Ｗ ＝ Ｃ ＋ Ｓ ＋ ＦＴ  （式１）
【００２６】
ここにおいて、Ｗはアプリケーション応答時間であり、Ｃはクライアント装置１４とサーバ装置１６間で費やされる通信時間の合計であって、クライアント装置１４からサーバ装置１６への通信時間Ｃ1とサーバ装置１６からクライアント装置１４への通信時間Ｃ2の両方向の通信時間が含まれており、Ｓはサービス時間の合計であって、サーバ装置１６での演算時間とデータ入出力時間が含まれており、ＦＴ（Fault tolerance Time）はメッセージ記録に費やされる時間の合計であり、サーバ装置１６におけるメッセージ記録時間の合計、すなわちＦＴ2とＦＴ3の和と、クライアント装置１４におけるメッセージ記録時間の合計、すなわちＦＴ1とＦＴ4の和とを含んでいる。
【００２７】
メッセージ記録に費やされる合計時間ＦＴは、サーバサイドでのメッセージ記録と、クライアントサイドでのメッセージ記録と、両サイドでのメッセージ記録とを含んだ、使用中のメッセージ記録手法に依存する。具体的には、ＦＴ1はクライアント装置１４で要求を記録するのに要した時間に相当し、ＦＴ2はサーバ装置１６で要求を記録するのに要した時間に相当し、ＦＴ3はサーバ装置１６で応答を記録するのに要した時間に相当し、ＦＴ4はクライアント装置１４で応答を記録するのに要した時間に相当する。したがって、異なるメッセージ記録手法を用いれば、アプリケーション応答時間Ｗが変化する。
【００２８】
本発明は、ある態様において、図３に示された切り替えアルゴリズム１００を用いて実施される。切り替えアルゴリズム１００は、アプリケーション応答時間Ｗを最適化し、ユーザの知覚上のシステム性能を改善させるために、メッセージ記録手法を切り替えるアルゴリズムである。
【００２９】
切り替えアルゴリズム１００は、図１に示された典型的な分散型システム１０に基づいて記述されており、アプリケーション応答時間Ｗは、ユーザによるクライアントアプリケーション２６からサーバアプリケーション２８への要求に関係している。切り替えアルゴリズム１００は、揮発性メモリ３２に格納され、クライアント装置１４のプロセッサ３０によって実行されるプログラムコードすなわち命令群を含んでいる。切り替えアルゴリズム１００はまた、揮発性メモリ５２に格納され、サーバ装置１６のプロセッサ５０によって実行されるプログラムコードすなわち命令群を含んでいる。
【００３０】
切り替えアルゴリズム１００は、ＲＭＳ１８のメッセージ記録手法を切り替えるために、クライアント装置１４及びサーバ装置１６上で連続的に動作する。したがって、切り替えアルゴリズム１００は、サーバアプリケーション２８に最初に要求が送信されたときか、或いはメッセージ記録手法を実行中に動的にメッセージ記録手法を切り替えることができる。切り替えアルゴリズム１００がクライアント装置１４及びサーバ装置１６上で同時に動作するとき、２つの装置間で各々の所望のメッセージ記録手法に関して何らかの不一致がある場合に、その不一致はハンドシェイク・プロトコルを用いることで解決することができる。ハンドシェイク・プロトコルは、クライアント装置１４とサーバ装置１６との間で、用いられるメッセージ記録手法が一致するようにメッセージを交換することを可能にする。
【００３１】
アプリケーション応答時間Ｗを最適化するために、切り替えアルゴリズム１００はサーバ装置１６のシステム負荷ＬSを監視している。ある実施形態においては、システム負荷ＬSは、サーバ装置１６において毎秒実行されているクライアントセッションの数に一致する。実行中のクライアントセッションには、特定のクライアント装置１４からの要求の全てが含まれ、サーバ装置１６において実行中或いは実行待ちの状態の要求が含まれる。システム負荷ＬSを監視しているのは、異なる記録手法を用いることによるアプリケーション応答時間Ｗへの効果が、システムへの負荷が増加するほど顕著となることが研究により示されているためである。なお、上記とは異なるシステム負荷ＬSを定義することも可能である。
【００３２】
また、切り替えアルゴリズム１００は、アプリケーション応答時間Ｗを最適化するために、クライアント装置１４とサーバ装置１６との間における片方向のネットワーク遅延ＮＤを監視している。ある実施の態様においては、ネットワーク遅延ＮＤは、クライアントとサーバの間の双方向の通信のうちいずれか一方向の通信に費やされた通信時間、すなわちＣ1あるいはＣ2に相当する。或いは、ネットワーク遅延ＮＤは、クライアントとサーバの間で費やされた通信時間Ｃ1とＣ2の平均値とすることも可能である。ネットワーク遅延ＮＤを監視することで、メッセージ記録手法の切り替えがアプリケーション応答時間Ｗとユーザの知覚上のシステム性能に対して有意な効果があるかどうかの指標が得られる。特に、アプリケーション応答時間の遅延は、メッセージ記録に費やされている時間よりはむしろ、ネットワークの輻輳やメッセージ配送の待ち時間により引き起こされていると言える。例えば、ネットワーク遅延ＮＤが所定のアプリケーション応答時間の閾値Ｔｈwよりも大きい場合には、メッセージ記録手法の切り替えはユーザの知覚上のシステム性能を向上させないと推測される。なぜなら、アプリケーション応答時間Ｗは、選択されているメッセージ記録手法によらず、アプリケーション応答時間の閾値Ｔｈw以上の値であり続けるからである。
【００３３】
図３を参照すると、切り替えアルゴリズム１００は、最初のステップ１０２において、あるアプリケーションにおけるアプリケーション応答時間Ｗを取得する。例えば、図１の分散型システムにおけるクライアント装置１４とサーバ装置１６は、ユーザの対話に関連するタイムスタンプを用いることによって、アプリケーション応答時間Ｗを計測することができる。具体的には、クライアント装置１４がＨＴＭＬベースで動作するのであれば、Ｗｅｂブラウザタイプのクライアントアプリケーション２６からサーバアプリケーション２８へのＧＥＴ或いはＰＯＳＴメソッドのＨＴＴＰ要求を全て傍受することができる。ＧＥＴ或いはＰＯＳＴメソッドの要求が発行されたら、クライアント装置１４はコンピュータのクロックタイムすなわち第１のタイムスタンプの計測を行う。ＧＥＴ或いはＰＯＳＴメソッドの要求が返され、サーバアプリケーション２８からの応答がブラウザにより表示されたら、クライアント装置１４は第２のタイムスタンプの計測を行う。アプリケーション応答時間Ｗは、第１のタイムスタンプと第２のタイムスタンプの差分を用いて計測される。アプリケーション応答時間Ｗとしては、好ましくは、第１のタイムスタンプと第２のタイムスタンプの差分の瞬時測定を複数行った場合の平均、及び分散を用いる。
【００３４】
次に、切り替えアルゴリズム１００は、ステップ１０４において、アプリケーション応答時間Ｗがアプリケーション応答時間の所定の閾値Ｔｈwより大きいかどうかを判断する。このアプリケーション応答時間の閾値Ｔｈwは、システムのデプロイヤによってスタートアップ時に或いは動的に設定されることができる。アプリケーションの種類を含むいくつかの要素が、特定のアプリケーション応答時間の閾値Ｔｈwの選択に影響を与えることがある。例えば、リアルタイムで動作する双方向型のネットワークゲームは、典型的にアプリケーション応答時間の平均に相当するＴｈwの値（例えば３００ミリ秒）がＷｅｂブラウザアプリケーションを介してアクセス可能なデータベースアプリケーションのＴｈwの値（およそ１〜３秒）よりも小さいことがある。
【００３５】
アプリケーション応答時間Ｗがアプリケーション応答時間の閾値Ｔｈwを上回ると切り替えアルゴリズム１００が判断した場合には、このアルゴリズム１００はシステム負荷Ｌsとネットワーク遅延ＮＤをステップ１０６において取得する。システム負荷Ｌsに相当する、サーバにおいて１秒あたりに実行されているクライアントセッション数は、サーバアプリケーションキューにおけるクライアント要求の数から決定することができる。さらに、ネットワーク遅延ＮＤを決定している、サーバ−クライアント間のいずれかの方向で費やされる通信時間、すなわちＣ1或いはＣ2は、クライアントアプリケーション２６とサーバアプリケーション２８の間に内在する通信プロセスに関連付けられたタイムスタンプを用いて計測することができるということを、当業者は理解するであろう。
【００３６】
次に、切り替えアルゴリズム１００はステップ１０８において、システム負荷Ｌsをシステム負荷の所定の閾値ＴｈLと比較し、ネットワーク遅延ＮＤをネットワーク遅延の所定の閾値ＴｈNDと比較する。システム負荷の閾値ＴｈLは、サーバサイドからクライアントサイドへのメッセージ記録への切り替えが、アプリケーション応答時間Ｗをアプリケーション応答時間の閾値Ｔｈw以下にするような負荷（１秒あたりに実行されるクライアントセッション数）に相当する。閾値ＴｈLの値はシステムに依存し、システムのデプロイヤによってスタートアップ時に或いは動的に供給されることができる。ネットワーク遅延の閾値ＴｈNDは、好ましくは、サーバ装置１６がクライアント／サーバアプリケーション２４へのユーザの要求を処理するサービス時間の代表値ＳTをアプリケーション応答時間の閾値Ｔｈwから差し引いた値に相当する。これにより、ネットワーク遅延が変化しても、ネットワークに特有の最適化がなされる。サービス時間の代表値ＳTは、好ましくは、サーバ装置１６におけるクライアント／サーバアプリケーション２４の過去のサービス時間の平均値Ｓに一致する。また、ネットワーク遅延の閾値ＴｈNDは、アプリケーション応答時間の閾値Ｔｈwに一致させても良い。
【００３７】
切り替えアルゴリズム１００は、好ましくは、ステップ１０８の比較において、システム負荷ＬSとネットワーク遅延ＮＤの移動平均ないし分散を用いる。システム負荷ＬSとネットワーク遅延ＮＤに対し、瞬時値よりむしろ上記の移動平均ないし分散を用いることにより、システム負荷ＬSとネットワーク遅延ＮＤが頻繁に変更されるときに、切り替えアルゴリズム１００がスラッシングを引き起こすことを防ぐことができる。ここでスラッシングとは、記録手法が頻繁に切り替わる状態のことであり、この状態はユーザの知覚上のシステム性能の向上に有意な利点がない。
【００３８】
システム負荷ＬSがシステム負荷の閾値ＴｈLよりも大きく、かつ、ネットワーク遅延ＮＤがネットワーク遅延の閾値ＴｈNDよりも小さい場合であり、このとき、本システムがサーバサイドでメッセージ記録（ＳＬ）を実行しているのであれば、切り替えアルゴリズム１００はステップ１１０において、メッセージ記録をクライアントサイドのメッセージ記録（ＣＬ）に切り替える。上記の場合（換言すれば、サーバ装置１６が深刻な負荷に直面している場合）、サーバ装置１６でのメッセージ記録を停止させると、メッセージ記録に費やされる合計時間ＦＴは大幅に減少するので、アプリケーション応答時間Ｗの顕著な改善をもたらす。このとき、既にクライアントサイドでメッセージ記録（ＣＬ）がなされていれば、サーバサイドでメッセージ記録（ＳＬ）を行うことはアプリケーション応答時間Ｗの改善に寄与しないため、切り替えアルゴリズム１００はステップ１１２においてクライアントサイドでのメッセージ記録への切り替えを行わない。
【００３９】
システム負荷ＬSがシステム負荷の閾値ＴｈLよりも小さく、かつ、ネットワーク遅延ＮＤがネットワーク遅延の閾値ＴｈNDよりも大きい場合であれば、アプリケーション応答時間Ｗに有害な影響を与えているのは、メッセージ記録時間ＦＴよりむしろネットワークの輻輳である。この場合、クライアントサイドとサーバサイドの間でメッセージ記録の切り替えを行ってもアプリケーション応答時間Ｗの改善に顕著な効果は期待できず、切り替えアルゴリズム１００はステップ１１４において、信頼性を向上させるために、クライアントサイドでのメッセージ記録（ＣＬ）とサーバサイドでのメッセージ記録（ＳＬ）の両方を選択する。
【００４０】
システム負荷ＬSがシステム負荷の閾値ＴｈLよりも小さく、かつ、ネットワーク遅延ＮＤがネットワーク遅延の閾値ＴｈNDよりも小さい場合、メッセージ記録の切り替えはアプリケーション応答時間Ｗの改善に顕著な効果は期待できない。この場合、サーバサイドでのメッセージ記録（ＳＬ）がなされていれば、切り替えアルゴリズム１００はステップ１１６において、サーバ装置１６の記憶領域を確保するためにクライアントサイドのメッセージ記録（ＣＬ）に切り替えるか、もしくはサーバサイドのメッセージ記録（ＳＬ）を使い続けるかの選択を提供する。或いは、クライアントサイドでのメッセージ記録（ＣＬ）がなされていれば、切り替えアルゴリズム１００はステップ１１８において、クライアント装置１４のバッテリを保護するためにサーバサイドでのメッセージ記録（ＳＬ）に切り替えるか、もしくはクライアントサイドのメッセージ記録（ＣＬ）を使い続けるかの選択を提供する。さらに、切り替えアルゴリズム１００は、ステップ１１６またはステップ１１８のいずれかにおいて、アプリケーションないしはユーザによる復旧時間の要求に基づいた迅速な復旧を可能にするために、サーバサイドのメッセージ記録（ＳＬ）及びクライアントサイドのメッセージ記録（ＣＬ）の選択を提供する。
【００４１】
システム負荷ＬSがシステム負荷の閾値ＴｈLよりも大きく、ネットワーク遅延ＮＤがネットワーク遅延の閾値ＴｈNDよりも大きければ、切り替えアルゴリズム１００は、アプリケーション応答時間Ｗを改善しようとメッセージ記録手法を切り替えるよりむしろ信頼性を向上させるために、ステップ１２０においてクライアントサイドでのメッセージ記録（ＣＬ）及びサーバサイドでのメッセージ記録（ＳＬ）を選択する。この場合、ネットワーク遅延ＮＤがネットワーク遅延の閾値ＴｈND以上であり、かつ、アプリケーション応答時間Ｗの改善は最低限、すなわちアプリケーション応答時間Ｗをアプリケーション応答時間の閾値ＴｈW以下にするには不十分であるため、信頼性は向上させるのが望ましい。
【００４２】
上述したような、切り替えアルゴリズム１００によるメッセージ記録手法切り替えの判断は、選択されたメッセージの記録先に十分な記憶スペースがメッセージを記録するために存在する場合に、分散型システム１０によって実行される。クライアント装置１４の固定記憶域３４、及びサーバ装置１６の固定記憶域５４におけるそれぞれの記憶スペースは、既知の方法により決定することができる。
【００４３】
また、上述したような、切り替えアルゴリズム１００によるメッセージ記録手法切り替えの判断は、クライアント装置１４が行うことも可能であるし、サーバ装置１６が行うことも可能である。
従って、本発明の実施の態様には、メッセージ記録手法切り替えの判断をサーバ装置１６が行う態様と、クライアント装置１４が行う態様とがある。
まず、前者の態様において、サーバ装置１６は、例えばクライアント装置１４で計測されたアプリケーション応答時間Ｗと、ネットワーク遅延ＮＤと、サーバ装置１６のシステム負荷ＬSを計測し、これらを固定記憶域５４に記憶されたそれぞれの閾値ＴｈW，ＴｈND，ＴｈLと比較することによって、メッセージ記録手法を切り替える。
また、後者の態様では、クライアント装置１４は、アプリケーション応答時間Ｗとネットワーク遅延ＮＤとを計測し、サーバ装置１６により計測されたサーバ装置１６のシステム負荷ＬSをサーバ装置１６から受信し、これらを固定記憶域３４に記憶されたそれぞれの閾値ＴｈW，ＴｈND，ＴｈLと比較することによって、メッセージ記録手法を切り替える。
【００４４】
本発明の別の実施形態として、切り替えアルゴリズム１００は、アプリケーション応答時間Ｗを最適化するためにメッセージ記録手法を切り替えるだけでなく、さらに、 切り替えオーバヘッド遅延に与えるネットワーク遅延ＮＤの影響を監視する。切り替えオーバヘッド遅延は、クライアントサイドからサーバサイドへのメッセージ記録の切り替え、或いはその逆の切り替えを行うのに要する時間に相当する。例えば、クライアント／サーバアプリケーション２４は、クライアントサイドとサーバサイドの間でのメッセージ記録手法の切り替えがされ次第、記録したメッセージの同期を要求する。この場合、切り替えオーバヘッド遅延は、記録されたメッセージの選択したメッセージ記録先への伝送に関連した一時遅延を含んでいる。ネットワーク遅延ＮＤが比較的大きい場合、 切り替えオーバヘッド遅延によるアプリケーション応答時間Ｗへの影響は許容できなくなる。この場合、ネットワーク遅延ＮＤが所定の切り替え閾値ＴｈSOLよりも大きいと、切り替えアルゴリズム１００はメッセージ記録手法の切り替えを行わない。この切り替え閾値ＴｈSOLは、好ましくはネットワーク遅延の閾値ＴｈNDよりも大きい。
【００４５】
別の実施形態において、切り替えアルゴリズム１００はさらに、複数のクライアント装置１４と通信しているサーバ装置１６が大きなシステム負荷ＬSで動作しているときにおける、メッセージ記録手法の切り替えがアプリケーション応答時間Ｗに与える影響を最小化する。この場合、切り替えアルゴリズム１００は全てのクライアント装置１４でメッセージ記録手法を同時には切り替えるのではなく、いくつかのクライアント装置１４をグループとして、これらのメッセージ記録手法を徐々に切り替えていく。
【００４６】
別の実施形態において、切り替えアルゴリズム１００はまた、システム負荷ＬSと、クライアント装置１４及びサーバ装置１６においてメッセージ記録に用いられる固定記憶領域の空き容量とに基づいて、特定のメッセージ記録手法を用いることの最初の決定を行う。例えば、システム負荷ＬSがシステム負荷の所定の閾値ＴｈLを超えると、これはサーバ装置１６が既に過負荷状態であることを意味しているから、このときクライアントサイドでのメッセージ記録手法が選択される。しかし、クライアント装置１４がメッセージ記録に用いる固定記憶領域に充分な空きがない場合、すなわちクライアント装置１４内部の固定記憶域３４の利用可能な記憶領域が所定の閾値Ｔｈstorage以下となった場合には、たとえシステム負荷ＬSがシステム負荷の閾値ＴｈL以上であっても、サーバサイドでのメッセージ記録手法が用いられる。
【００４７】
別の実施形態において、切り替えアルゴリズム１００はさらに、ある時間内に実行が許容されている切り替えの数を制限することでスラッシングを防ぐためのスムージング技術を行う。例えば、切り替えアルゴリズム１００は、ある時間内における切り替え数が所定のスムージングの閾値を超えたら、メッセージ記録手法を切り替える判断を遅らせるか、もしくは無視する。
【００４８】
また、さらに別の実施形態において、本発明は図４に示されている、サーバのトランザクション速度を最適化し、サーバ性能を改善させるためにメッセージ記録手法の切り替えを行うための切り替えアルゴリズム２００を用いて実施される。図１に示された分散型システム１０のもとでは、サーバのトランザクション速度は、分散型システム１０のサーバ装置１６において毎秒に完了するトランザクションの数に一致する。サーバのトランザクション速度は、サーバの処理能力を示す重要な値である。ここでは、システムのデプロイヤによってサーバのトランザクション速度が高いことが望ましい。
【００４９】
サーバトランザクション速度を最適化するために、切り替えアルゴリズム２００はサーバにおけるシステム負荷ＬSと、クライアント装置１４とサーバ装置１６の間のネットワーク遅延ＮＤとを監視する。
【００５０】
図４を参照すると、切り替えアルゴリズム２００はまず、ステップ２０２において、システム負荷ＬSとネットワーク遅延ＮＤを取得する。続いて、切り替えアルゴリズム２００は、ステップ２０４において、上述のシステム負荷ＬSを所定の閾値ＴｈLと比較し、上述のネットワーク遅延ＮＤを所定の閾値ＴｈNDと比較する。システム負荷の閾値ＴｈLは、メッセージ記録のサーバサイドからクライアントサイドへの切り替えによって、アプリケーション応答時間Ｗがアプリケーション応答時間の閾値Ｔｈw以下になるときの負荷（１秒あたりにおける実行中のクライアントセッション数）を表している。閾値ＴｈLの値はシステムに依存し、システムのデプロイヤによって供給される。サービス時間の代表値ＳＴは、好ましくは、サーバ装置１６におけるクライアント／サーバアプリケーション２４の、過去のサービス時間の平均値に一致する。スラッシングを避けるために、切り替えアルゴリズム２００は、ステップ２０４の比較を行う際に、好ましくは、システム負荷ＬS及びネットワーク遅延ＮＤの移動平均或いは分散を用いるのが望ましい。
【００５１】
システム負荷ＬSがシステム負荷の閾値ＴｈLよりも大きく、かつ、ネットワーク遅延ＮＤがネットワーク遅延の閾値ＴｈNDよりも小さい場合であり、かつ、このときこのシステムにおいてサーバサイドでのメッセージ記録ＳＬが行われている場合には、切り替えアルゴリズム２００は、ステップ２０６においてメッセージ記録をクライアントサイドでのメッセージ記録ＣＬに切り替える。これにより、サーバトランザクション速度が著しく向上する。クライアントサイドでメッセージ記録ＣＬが行われている場合は、サーバサイドでのメッセージ記録ＳＬに切り替えてもサーバトランザクション速度に対して効果がないため、切り替えアルゴリズム２００は、ステップ２０８においてメッセージ記録手法の切り替えを行わない。
【００５２】
システム負荷ＬSがシステム負荷の閾値ＴｈLよりも小さく、かつ、ネットワーク遅延ＮＤがネットワーク遅延の閾値ＴｈNDよりも大きければ、メッセージ記録の切り替えはサーバトランザクション速度に対して特段の効果を期待できない。この場合、切り替えアルゴリズム２００はステップ２１０において、メッセージ記録手法がクライアント或いはサーバのいずれであっても、その切り替えは行わない。すなわち、切り替えアルゴリズム２００は、クライアント及びサーバが現在使用中のメッセージ記録手法を選択する。これにより、切り替えにより複数のクライアント装置１４及びサーバ装置１６に記録されたメッセージの同期が必要となるような場合には、切り替えオーバーヘッド遅延に起因したサーバトランザクション速度に関する潜在的な弊害を回避することができる。
【００５３】
システム負荷ＬSがシステム負荷の閾値ＴｈLよりも小さく、かつ、ネットワーク遅延ＮＤがネットワーク遅延の閾値ＴｈNDよりも小さければ、メッセージ記録手法の切り替えはサーバトランザクション速度に対して特段の効果を期待できない。この場合、メッセージ記録がサーバサイドで行われているのであれば（ＳＬ）、切り替えアルゴリズム２００はステップ２１２において、サーバ装置１６のディスクスペースを節約するためにメッセージ記録をクライアントサイドに切り替えるか（ＣＬ）、もしくはサーバサイドでのメッセージ記録（ＳＬ）を続けるかどうかの選択をユーザに対して与える。或いは、メッセージ記録がクライアントサイドで行われているのであれば（ＣＬ）、切り替えアルゴリズム２００はステップ２１４において、クライアント装置１４の電池残量を節約するためにメッセージ記録をサーバサイドに切り替えるか（ＳＬ）、もしくはクライアントサイドでのメッセージ記録（ＣＬ）を続けるかどうかの選択をユーザに対して与える。さらに、切り替えアルゴリズム２００はステップ２１２またはステップ２１４において、アプリケーションまたはユーザからのリカバリ時間の要求に基づき、より迅速にリカバリするためにメッセージ記録をクライアントサイド（ＣＬ）とサーバサイド（ＳＬ）の両方で行うかどうかの選択をユーザに対して与える。
【００５４】
システム負荷ＬSがシステム負荷の閾値ＴｈLよりも大きく、かつ、ネットワーク遅延ＮＤがネットワーク遅延の閾値ＴｈNDよりも大きい場合には、メッセージ記録手法の切り替えは、ネットワークの輻輳や切り替えオーバーヘッド遅延によらず、サーバトランザクションの改善に良好な結果をもたらす。このような場合に、このシステムがサーバサイドでメッセージ記録を行っているのであれば（ＳＬ）、切り替えアルゴリズム２００はステップ２１６において、メッセージ記録手法をクライアントサイドでのメッセージ記録に切り替える（ＣＬ）。クライアントサイドでのメッセージ記録（ＣＬ）が既に実行されている場合には、サーバサイドでのメッセージ記録（ＳＬ）に切り替えてもサーバトランザクション速度に対して特段の効果を期待できないので、切り替えアルゴリズム２００はステップ２１８においてメッセージ記録手法の切り替えを行わない。
【００５５】
以上のように、本発明によれば、アプリケーション応答時間、システム負荷、及びネットワーク遅延の測定に基づいてメッセージ記録手法を動的に切り替えることによって、システム性能を改善させることが可能となる。なお、本発明は分散型システムのもとに記述されたが、本発明の機構は、種々の形態のコンピュータ利用可能な命令手段の一形態にて提供されることも可能であり、また、本発明は同様に、実際に提供される信号伝達手段の種類に関係なく応用することは、当業者において適宜なし得ることであることに留意されたい。コンピュータ利用可能な伝達手段の例としては、ＲＯＭ（Read Only Memory）やＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）等のハードコーディング方式の不揮発性メモリや、フロッピディスクやハードディスクドライブ、或いはＣＤ−ＲＯＭ等の記録可能な記録媒体や、デジタル、またはアナログの通信回線を用いたデータ通信等が含まれる。
【００５６】
なお、本発明はその特定の実施形態に関して説明され図解されたが、これは、本発明をこの説明された実施形態に限定することを意図したものではない。当業者においては、本発明の目的と技術思想から逸脱しない範囲において、本発明を変形することが可能であることを認められるであろう。ゆえに、本発明は、付記された請求項及び対応特許の範囲内の変形を含むことを意図している。
【図面の簡単な説明】
【００５７】
【図１】本発明の一実施形態に係るメッセージ記録手法を動的に切り替える方法を実施するための分散型システムの典型を示したブロック図である。
【図２】図１に示された分散型システムにおけるユーザの対話を時系列で示した図である。
【図３】アプリケーション応答時間を最適化するためにメッセージ記録手法を動的に切り替える方法を示した樹状図である。
【図４】サーバトランザクション速度を最適化するためにメッセージ記録手法を動的に切り替える方法を示した樹状図である。
【符号の説明】
【００５８】
１０…分散型システム、１２…ネットワーク、１４…クライアント装置、１６…サーバ装置、１８…高信頼性メッセージングシステム（ＲＭＳ）、２０…クライアントモジュール、２２…サーバモジュール、２４…クライアント／サーバアプリケーション、２６…クライアントアプリケーション、２８…サーバアプリケーション、３０…プロセッサ、３２…揮発性メモリ、３４…固定記憶域、３６…ディスプレイアダプタ、３８…ディスプレイ、４０…入力装置、５０…プロセッサ、５２…揮発性メモリ、５４…固定記憶域、１００，２００…切り替えアルゴリズム。
【図１】
2004192647.tif 000003
【図２】
2004192647.tif 000004
【図３】
2004192647.tif 000005
【図４】
2004192647.tif 000006