(57)【要約】  システムは、高可用性電子メッセージ転送を提供する。電子メッセージが第１のメッセージングサーバに伝達された場合、電子メッセージのコピーは第２のサーバで維持される。電子メッセージは、電子メッセージが第３のサーバに首尾よく伝達されるまで両方のサーバ上で維持される。メッセージが第３のサーバに配信された後で、電子メッセージは、第１のサーバおよび第２のサーバの両方から除去される。第１のサーバが電子メッセージを第３のサーバに伝達することができない場合は、第２のサーバが伝達する。
2010532637.tif 000002
【特許請求の範囲】
【請求項１】
電子メッセージをトランスポートする方法であって、
電子メッセージをプライマリメッセージングサーバ（１１０）で受信すること、
前記電子メッセージのシャドウコピーをシャドウメッセージングサーバ（１５０）で維持すること、
前記プライマリメッセージングサーバによる第３のメッセージングサーバ（１３０）への配信がないか前記シャドウサーバ（１５０）で監視すること、
前記プライマリメッセージングサーバ（１１０）が前記電子メッセージを前記第３のメッセージングサーバ（１３０）に伝達したことを識別すると、前記シャドウメッセージングサーバ（１５０）で前記電子メッセージの前記シャドウコピーを削除すること
を含むことを特徴とする方法。
【請求項２】
前記プライマリメッセージングサーバ（１１０）が前記電子メッセージを前記第３のメッセージングサーバ（１３０）に配信しなかったと前記シャドウメッセージングサーバ（１５０）で判定すること、および
前記電子メッセージを前記シャドウメッセージングサーバ（１５０）から前記第３のメッセージングサーバ（１３０）に伝達すること
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記電子メッセージをプライマリメッセージングサーバ（１１０）で受信することは、電子メッセージを第１のメッセージングサーバ（１５０）から前記プライマリメッセージングサーバ（１１０）で受信することを含み、
前記電子メッセージのシャドウコピーをシャドウメッセージングサーバ（１５０）で維持することは、前記電子メッセージのシャドウコピーを前記第１のメッセージングサーバ（１５０）で維持することを含む
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記プライマリメッセージングサーバ（１１０）がシャドウイングサービスを使用するように動作可能であることを前記第１のメッセージングサーバ（１５０）で識別すること、および
前記第１のメッセージングサーバ（１５０）がシャドウメッセージングサーバとして動作するように利用可能であることを前記第１のメッセージングサーバ（１５０）から前記プライマリメッセージングサーバ（１１０）に伝達すること
をさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記シャドウメッセージングサーバ（１５０）として動作し、前記電子メッセージのシャドウコピーを受信する第２のメッセージングサーバ（１５０）を、前記プライマリメッセージングサーバ（１１０）で識別すること、および
前記電子メッセージのコピーを前記プライマリメッセージングサーバ（１１０）から前記識別されたシャドウメッセージングサーバ（１５０）に伝達すること
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記シャドウメッセージングサーバ（１５０）として動作する第２のメッセージングサーバ（１５０）を識別することは、前記電子メッセージのコピーを受信し、前記電子メッセージを配信する第２の役割を担う複数のサーバ（１５０、１６０）を識別することを含み、
前記電子メッセージのコピーを前記プライマリメッセージングサーバ（１１０）から前記識別されたシャドウメッセージングサーバ（１５０）に伝達することをさらに含むことは、前記電子メッセージのコピーを複数のサーバ（１５０、１６０）のそれぞれに伝達することを含む
ことを特徴とする請求項５に記載の方法。
【請求項７】
前記電子メッセージのコピーを前記プライマリメッセージングサーバ（１１０）から前記識別されたシャドウメッセージングサーバ（１５０）に伝達することは、前記電子メッセージを前記プライマリメッセージングサーバ（１１０）で受信するのと同時に前記電子メッセージのコピーを前記識別されたシャドウメッセージングサーバ（１５０）に伝達することを含むことを特徴とする請求項５に記載の方法。
【請求項８】
前記電子メッセージのコピーを前記プライマリメッセージングサーバ（１１０）から前記識別されたシャドウメッセージングサーバ（１５０）に伝達することは、前記電子メッセージを前記プライマリメッセージングサーバ（１１０）で受信した後で前記電子メッセージのコピーを前記識別されたシャドウメッセージングサーバ（１５０）に伝達することを含むことを特徴とする請求項５に記載の方法。
【請求項９】
情報を格納している１つまたは複数のコンピュータ可読記憶媒体（９５３、９５４）であって、
第１のメッセージングサーバ（１１０）から第２のメッセージングサーバ（１２０）に、電子メッセージが前記第２のメッセージングサーバ（１２０）に伝達される予定であることを示すメッセージを伝達するためのコンピュータ可読命令、
前記第１のメッセージングサーバ（１１０）から前記第２のメッセージングサーバ（１２０）に、前記第１のメッセージングサーバ（１１０）が前記電子メッセージのシャドウコピーを維持することになるという指示を伝達するためのコンピュータ可読命令、
前記第１のメッセージングサーバ（１１０）から前記第２のメッセージングサーバ（１２０）に、前記電子メッセージを伝達するためのコンピュータ可読命令、
前記電子メッセージが第３のメッセージングサーバ（１３０）に伝達されたという通知を前記第２のメッセージングサーバ（１２０）から前記第１のメッセージングサーバ（１１０）で受信するとすぐ、前記電子メッセージを前記第１のメッセージングサーバ（１１０）から削除するためのコンピュータ可読命令
を備えることを特徴とする１つまたは複数のコンピュータ可読記憶媒体。
【請求項１０】
前記第２のメッセージングサーバ（１２０）が前記電子メッセージを第３のメッセージングサーバ（１３０）に配信しなかったと前記第１メッセージングサーバ（１１０）で判定するためのコンピュータ可読命令、および
前記電子メッセージのコピーを前記第１のメッセージングサーバ（１１０）から前記第３のメッセージングサーバ（１３０）に伝達するためのコンピュータ可読命令
をさらに備えることを特徴とする請求項９に記載の１つまたは複数のコンピュータ可読記憶媒体。
【請求項１１】
前記第２のメッセージングサーバ（１２０）が前記電子メッセージを第３のメッセージングサーバ（１３０）に配信しなかったと前記第１のメッセージングサーバ（１１０）で判定することは、規定の期間に前記第２のメッセージングサーバ（１２０）からメッセージが１つも受信されなかったと前記第１のメッセージングサーバ（１１０）で判定することを含むことを特徴とする請求項１０に記載の１つまたは複数のコンピュータ可読記憶媒体。
【請求項１２】
前記第２のメッセージングサーバ（１２０）が前記電子メッセージを第３のメッセージングサーバ（１３０）に配信しなかったと前記第１のメッセージングサーバ（１１０）で判定することは、前記第２のメッセージングサーバ（１２０）が前記第１のメッセージングサーバ（１１０）からの要求に応答していないことを識別することを含むことを特徴とする請求項１１に記載の１つまたは複数のコンピュータ可読記憶媒体。
【請求項１３】
前記第２のメッセージングサーバ（１２０）がシャドウイングサービスを使用するように動作可能であることを前記第１のメッセージングサーバ（１１０）で検知するためのコンピュータ可読命令をさらに備えることを特徴とする請求項９に記載の１つまたは複数のコンピュータ可読記憶媒体。
【請求項１４】
電子メッセージをトランスポートするシステムであって、
電子メッセージを処理するように構成された第１のメッセージングサーバ（１１０）を備え、前記第１のメッセージングサーバは、
第１のプロセッサ（９５９）と、
電子メッセージが第１のメッセージングサーバ（１１０）に伝達される予定であることを示す情報を前記第１のメッセージングサーバ（１１０）で受信すること、
前記電子メッセージのシャドウコピーを受信する第２のメッセージングサーバ（１５０）を前記第１のメッセージングサーバ（１１０）で識別すること、
前記電子メッセージを前記第１のメッセージングサーバ（１１０）で受信すること、および
前記電子メッセージのコピーを前記第２のメッセージングサーバ（１５０）に伝達すること
を実行するための前記第１のプロセッサ上で実行されるように構成された実行可能な命令を備えるメモリ（９３４）と
を備えることを特徴とするシステム。
【請求項１５】
前記電子メッセージのシャドウコピーを受信する第２のメッセージングサーバ（１５０）を識別するための前記命令は、前記電子メッセージを受信し、前記電子メッセージを配信する第２の役割を担う電子メッセージングサーバ（１５０）を識別するための命令を含むことを特徴とする請求項１４に記載のシステム。
【請求項１６】
前記電子メッセージのシャドウコピーを受信する第２のメッセージングサーバ（１５０）を識別するための前記命令は、前記電子メッセージを受信し、前記電子メッセージを配信する第２の役割を担う複数のメッセージングサーバ（１５０、１２０）を識別するための命令を含み、
前記電子メッセージを前記第２のメッセージングサーバ（１５０）に伝達することは、前記電子メッセージを前記複数のメッセージングサーバ（１５０、１２０）に伝達することを含む
ことを特徴とする請求項１４に記載のシステム。
【請求項１７】
前記電子メッセージのコピーを前記第２のメッセージングサーバ（１５０）に伝達するための前記命令は、前記電子メッセージを前記第１のメッセージングサーバ（１１０）で受信するのと同時に前記電子メッセージのコピーを前記第２のメッセージングサーバ（１５０）に伝達するための命令を含むことを特徴とする請求項１４に記載のシステム。
【請求項１８】
前記電子メッセージのコピーを前記第２のメッセージングサーバ（１５０）に伝達するための前記命令は、前記電子メッセージを前記第１のメッセージングサーバ（１１０）で受信した後で前記電子メッセージを前記第２のメッセージングサーバ（１５０）に伝達するための命令を含むことを特徴とする請求項１４に記載のシステム。
【請求項１９】
前記電子メッセージを前記第１のメッセージングサーバ（１１０）から第３のメッセージングサーバ（１３０）に伝達すること、
前記電子メッセージを前記第１のメッセージングサーバ（１１０）から除去すること、および
前記電子メッセージが前記第３のメッセージングサーバ（１３０）に伝達されるという通知を前記第２のメッセージングサーバ（１５０）に伝達すること
を実行するための命令をさらに備えることを特徴とする請求項１４に記載のシステム。
【請求項２０】
電子メッセージを処理するように構成された第２のメッセージングサーバ（１５０）をさらに備え、前記第２のメッセージングサーバは、
プロセッサ（９５９）と、
前記第１のメッセージングサーバ（１１０）が前記電子メッセージを前記第３のメッセージングサーバ（１３０）に配信しなかったと前記第２のメッセージングサーバ（１５０）で判定すること、および
前記電子メッセージを前記第２のメッセージングサーバ（１５０）から前記第３のメッセージングサーバ（１３０）に伝達すること
を実行するための前記プロセッサ（９５９）上で実行されるように構成された実行可能な命令を備えるメモリ（９３４）と
を備えることを特徴とする請求項１４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子メッセージの高可用性トランスポートを提供するシステムおよび方法に関する。
【背景技術】
【０００２】
例えば、電子メールおよびインスタントメッセージングを提供するシステムなどの電子メッセージングシステムは、現代社会ではユビキタスになってきている。電子メッセージングシステムは学術的環境および企業環境で長年使用されてきて、今では個人消費者市場で広く使用されている。実際、電子メッセージングは非常に普及してきており、急速に多くの企業および個人のための好ましい通信手段になってきている。
【０００３】
一般に、電子メッセージは、複数のメッセージングサーバを介して伝達された後で、最終的に所期の受信者のメッセージボックスに保存される。例えば、電子メッセージは、所期の受信者のためにメッセージを受信する役割を担うメッセージングサーバで受信されるまで、第１のメッセージングサーバで受信され、次いで第２のメッセージングサーバに転送され、次いで第３のメッセージングサーバに転送され、以下同様に転送されることができる。電子メッセージを伝達する役割を担う一連のメッセージングサーバのそれぞれで、電子メッセージは、メッセージングサーバが電子メッセージを一連のメッセージングサーバの次のメッセージングサーバに転送した後で廃棄される。電子メッセージが、所期の受信者にサービスを提供するメッセージングサーバで受信された場合、電子メッセージは受信者のメッセージボックスに格納される。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的とするところは、電子メッセージの高可用性トランスポートを提供するシステムおよび方法を提供することにある。
【課題を解決するための手段】
【０００５】
例示的システムは、所期の受信者のメールボックスに向けてメッセージを移動させるプロセスの一環として、電子メッセージを受信し、そのメッセージを他のメッセージングサーバに転送するようにプログラムされた、プライマリサーバとも呼ばれる第１のメッセージングサーバを備えることができる。例示的システムは、プライマリサーバで受信された電子メッセージのコピーを維持し、万一プライマリサーバが機能しない場合は、その電子メッセージを配信するようにプログラムされた、シャドウサーバとも呼ばれる第２のメッセージングサーバをさらに備える。一例示的システムでは、プライマリサーバおよびシャドウサーバは、ＳＭＴＰを使用して通信するＳＭＴＰサーバである。
【０００６】
例示的プライマリサーバは、別のサーバが電子メッセージをプライマリサーバに配信するように用意されていることを示す通知を受信するようにプログラムされる。プライマリサーバは、シャドウサーバとして動作するべき１つまたは複数の追加のサーバを識別する。プライマリサーバは、例えば、潜在的サーバと通信することにより、および／またはサーバのリストからサーバを識別することにより、シャドウサーバを識別することができる。
【０００７】
次いで、プライマリサーバは、電子メッセージを受信する。プライマリサーバはまた、シャドウサーバとして識別された１つまたは複数のサーバに電子メッセージを伝達する。プライマリサーバは、処理中のいかなる適切な時点においてでも電子メッセージをシャドウサーバに伝達することができる。例えば、一例示的実施形態では、プライマリサーバは、メッセージを受信するのと同時にシャドウサーバにメッセージを伝達することができる。他の例示的実施形態では、プライマリサーバは、メッセージを受信し終えた後でシャドウサーバに電子メッセージを伝達することができる。
【０００８】
プライマリサーバが予期されたように動作し続ける場合は、プライマリサーバは、メッセージが所期の受信者のメッセージボックスにある最終宛先へ前進するようにその次のサーバに電子メッセージを転送する。プライマリサーバはその次のサーバに電子メッセージを伝達した後で、メッセージが伝達されたことをシャドウサーバに通知する。次いで、プライマリサーバは、そのメッセージのコピーを廃棄する。プライマリサーバからの通知に応答して、シャドウサーバも同様にメッセージを廃棄する。
【０００９】
シャドウサーバは、電子メッセージのコピーを受信した後で、プライマリサーバおよび電子メッセージの配信状態を監視する。プライマリサーバが機能していない、または宛先に電子メッセージを伝達するために利用可能でないとシャドウサーバが判定した場合、シャドウサーバ自体が電子メッセージを適切な宛先に伝達する。
【００１０】
代替実施形態では、電子メッセージをプライマリサーバに最初に伝達するメッセージングサーバは、シャドウサーバとしても動作する。そのような実施形態では、電子メッセージを転送するサーバは、プライマリサーバがシャドウイング（shadowing）をサポートすることを認識し、そのサーバがシャドウサーバとして動作することになることをプライマリサーバに通知し、電子メッセージをプライマリサーバに転送した後で、電子メッセージのコピーを維持する。プライマリサーバは、電子メッセージを受信し、メッセージが所期の宛先に向かって前進するようにメッセージを別のサーバに転送する。プライマリサーバは、電子メッセージを次のサーバに配信するとすぐ、メッセージが配信されたことを、シャドウサーバ、すなわちメッセージをそこから受信したサーバに通知する。この通知を受信することに応答して、シャドウサーバは電子メッセージを廃棄する。プライマリサーバが電子メッセージを伝達しなかったとメッセージシャドウサーバが判定した場合は、メッセージシャドウサーバが役割を引き受けて電子メッセージを伝達する。
【００１１】
本「発明の概要」は、以下の「発明を実施するための形態」でさらに詳細に説明する概念の抜粋を簡略化された形で紹介するために提供される。本「発明の概要」は、本発明の主要な特徴または本質的な特徴を識別することを意図するものではなく、また本発明の範囲を限定するために使用されることを意図するものでもない。他の特徴が以下で説明される。
【００１２】
前述の概要および以下の例示的実施形態の説明は、添付の図面と併せて読むと、よりよく理解することができるだろう。開示されたシステムおよび方法の潜在的実施形態は図示されたものに限定されないことも理解されるだろう。
【図面の簡単な説明】
【００１３】
【図１】本発明の諸態様を実施することができる例示的コンピューティング構成のネットワーク図である。
【図２】高可用性電子メッセージトランスポートを提供するプロセスの流れ図である。
【図３】高可用性メッセージトランスポートが提供される電子メッセージを受信するプロセスの流れ図である。
【図４】電子メッセージ転送で高可用性を提供するプロセスの流れ図である。
【図５】高可用性メッセージトランスポートを提供するように構成された例示的ＳＭＴＰサーバの構成要素を示す図である。
【図６】高可用性電子メッセージトランスポートを提供するプロセスの流れ図である。
【図７】高可用性メッセージトランスポートが提供される電子メッセージを受信するプロセスの流れ図である。
【図８】電子メッセージ転送で高可用性を提供するプロセスの流れ図である。
【図９】本発明の諸態様を実装することができるコンピューティング環境のブロック図である。
【発明を実施するための形態】
【００１４】
（概要）
電子メールおよびインスタントメッセージをトランスポートするシステムなど、既存の電子メッセージングシステムでは、電子メッセージは、所期の受信者にサービスを提供する役割を担うサーバに到達するまで、サーバからサーバへ次々に転送される。例えば、電子メールの場合、電子メールは、所期の受信者のメッセージボックスにサービスを提供するメッセージングサーバに電子メールが転送されるまで、第１のメッセージングサーバから第２のメッセージングサーバに伝達され、第２のメッセージングサーバから第３のメッセージングサーバに伝達され、以下同様に伝達されることができる。電子メッセージを伝達する一連のメッセージングサーバの各サーバでは、メッセージが次のメッセージングサーバに転送された後で、その電子メッセージのコピーを廃棄する。したがって、電子メッセージがサーバで受信され、次のサーバに転送されるまでの間、電子メッセージはその単一のサーバ上に存在することができる。万一サーバが機能しない場合は、電子メッセージが失われる可能性がある。
【００１５】
トランスポート中にメッセージに冗長性を提供するシステムおよび方法が本明細書では開示される。一例示的実施形態では、電子メッセージが第１のサーバに伝達された場合、電子メッセージはまた、第２のサーバで維持される。電子メッセージは、メッセージの所期の受信者にサービスを提供するサーバに向けてメッセージを移動させる役割を担う一連のサーバの次のメッセージサーバに電子メッセージが首尾よく伝達されるまで、両方のサーバ上に維持される。メッセージが第１のサーバによって配信された後で、電子メッセージは第１のサーバおよび第２のサーバの両方から除去されることができる。万一第１のサーバが機能しない場合は、第２のサーバが介入してメッセージを適切なサーバに転送する。
【００１６】
開示される方法は、市販のソフトウェアおよび標準的なハードウェアで実施されることができる。例えば、開示されるシステムおよび方法の一実施形態では、サーバはＳＭＴＰサーバとして実装されることができる。さらに、ＳＭＴＰサーバは、既成の安価なコンピューティングハードウェア上で実装されることが可能であり、確立したネットワーキング技術およびプロトコルを使用して通信することができる。
【００１７】
（例示的コンピューティング構成）
図１は、冗長電子メッセージングを提供するのに適した例示的コンピューティング構成１００を示す。コンピューティング構成１００では、複数の電子メッセージングサーバ１１０、１２０、１３０、１４０、１５０、および１６０のそれぞれが、電子メッセージを受信し、所期の受信者に転送するように構成される。サーバ１１０、１２０、１３０、１４０、１５０、および１６０のそれぞれは、冗長メッセージ転送を提供するために本明細書で説明されるように動作するようにとのコンピュータ可読命令と共にプログラムされたいかなる適切なコンピューティング装置でもよい。一例示的実施形態では、電子メッセージングサーバ１１０、１２０、１３０、１４０、１５０、および１６０は、例えば、電子メールを転送するように構成されたＳＭＴＰサーバでもよい。例示的メッセージングサーバ１１０、１２０、１３０、１４０、１５０、および１６０は、例えば、インスタントメッセージングサーバでもよい。例示的メッセージングサーバ１１０、１２０、１３０、１４０、１５０、および１６０は、電子メッセージを格納するために、それぞれ記憶領域１１２、１２２、１３２、１４２、１５２、および１６２を有する。さらに、メッセージングサーバ１１０、１２０、１３０、１４０、１５０、および１６０のそれぞれは、メッセージングサーバ１３０に関連して図示されているサーバ１６６などのメールボックスサーバを備える。メールボックス１６６は、メッセージを個々のユーザのメールボックスに配信するように動作可能である。図１には、６つのサーバ１１０、１２０、１３０、１４０、１５０、および１６０が図示されているが、構成１００には複数のサーバがいくつ備えられてもよいことに留意されたい。
【００１８】
電子メッセージングサーバ１１０、１２０、１３０、１４０、１５０、および１６０は、ネットワーク１０８に通信可能に結合される。ネットワーク１０８は、電子メールなどの電子メッセージを伝達するように構成され、データの移動に適したいかなるタイプのネットワークであってもよい。例えば、ネットワーク１０８は、ローカルエリアネットワーク（ＬＡＮ）、公衆交換電話網、インターネット、または他の通信データに適したネットワークの全てあるいは一部分であっても、もしくはそれらの全てあるいは一部分を備えてもよい。ネットワーク１０８は、様々な技術を使用することができる個別のネットワークの組合せを備えてもよい。例えば、ネットワーク１０８は、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、またはそれらの組合せを備えてもよく、無線ネットワークおよび有線ネットワークを含むいかなる適切なトポロジをも利用することができる。
【００１９】
一例示的実施形態では、電子メッセージングサーバ１１０、１２０、１３０、１４０、１５０、および１６０は、電子メッセージを所期の送信者に向けて転送するためにネットワーク１０８を介して相互に通信するようにプログラムされる。例えば、図１で破線によって示されているように、電子メールなどの電子メッセージは、メッセージングサーバ１１０からメッセージングサーバ１４０に、次いで、メッセージングサーバ１３０に転送されることができる。メッセージングサーバ１３０は、電子メッセージの所期の受信者、およびメールボックスサーバ１６６によって個々のユーザのメールボックスに入れられた電子メッセージに対応することができる。ユーザは、コンピューティング装置１７０および１８０を使用して電子メッセージにアクセスすることができる。メッセージングサーバ１１０、１２０、１３０、１４０、１５０、および１６０は、電子メッセージを管理し、伝達するのに適したいかなるプロトコル（１つまたは複数）を使用してでも通信することができる。一例示的実施形態では、電子メッセージサーバは、ＳＭＴＰを使用して通信することができる。
【００２０】
一例示的実施形態では、電子メッセージが送信される予定であるという通知をメッセージングサーバ１１０、１２０、１３０、１４０、１５０、および１６０のうちの１つで受信するとすぐ、プライマリサーバとも呼ぶことができるサーバは、特定の電子メッセージのためのシャドウサーバとして動作するべき別のサーバを識別する。シャドウサーバは、メッセージをプライマリサーバに転送するサーバでもよく、プライマリサーバと通信している別のサーバでもよい。シャドウサーバを識別した後で、プライマリサーバは、電子メッセージを受信し、必要な場合は、すなわち、シャドウサーバがメッセージをプライマリサーバに転送するサーバでない場合、電子メッセージをシャドウサーバにも送信する。プライマリサーバが首尾よく電子メッセージを別のサーバに転送した、あるいはメッセージを所期の受信者のメッセージボックスに転送した場合、プライマリサーバは、このことをシャドウサーバに通知し、プライマリサーバ上のメッセージのコピーを削除する。プライマリサーバからの通知に応答して、シャドウサーバは電子メッセージを除去する。プライマリサーバがメッセージを転送したという通知をシャドウサーバがプライマリサーバから受信しない場合、シャドウサーバがその役割を担って電子メッセージを転送することができる。
【００２１】
（冗長メッセージ転送方法）
図２は、冗長電子メッセージ転送を提供する例示的プロセスの流れ図である。ステップ２１０で、メッセージングサーバは、電子メッセージが特定のサーバに転送されるように用意されているという通知を受信する。例えば、別のサーバが電子メールを転送するように用意されていることを示す電子メッセージが、サーバ１１０で受信されることができる。この通知を受信し、電子メッセージが転送されてくる予定であるメッセージングサーバは、プライマリサーバと呼ばれてもよい。
【００２２】
ステップ２１２で、プライマリサーバ１１０は、シャドウサーバとして動作する別のメッセージングサーバを識別する。図２から５に関連して説明される実施形態では、シャドウサーバは、プライマリサーバが電子メッセージをそこから受信したサーバ以外のサーバであるとする。図６から８に関連して以下で説明される他の実施形態では、電子メッセージをプライマリサーバに転送するサーバが、シャドウサーバとして動作する。
【００２３】
図２を参照すると、ステップ２１２で、プライマリサーバ１１０は適切な方法によってシャドウサーバを識別する。例えば、プライマリサーバ１１０はメッセージを特定のサーバに伝達し、そのサーバが特定のメッセージのためのシャドウ機能で動作するように要求することができる。この要求は、例えば、ＳＭＴＰフォーマットされた要求でもよい。代替実施形態では、プライマリサーバ１１０は利用可能なサーバのリストからシャドウサーバを選択することができる。一例示的実施形態では、プライマリサーバ１１０は、単一のメッセージのためのシャドウサーバとして動作するべき複数のメッセージングサーバを識別することができる。説明のために、メッセージングサーバ１５０がプライマリサーバ１１０によってシャドウサーバとして識別されたと仮定する。
【００２４】
ステップ２１４で、プライマリサーバ１１０はメッセージを受信し、格納する。例えば、プライマリサーバ１１０は、ディスクおよび／またはランダムアクセスメモリでもよいメモリに維持しているメッセージのキューにメッセージを格納することができる。メッセージは、例えば、ＳＭＴＰプロトコルを使用して受信されることができる。さらに、ステップ２１４で、プライマリサーバ１１０は、電子メッセージのコピーをシャドウサーバ１５０に伝達する。電子メッセージは、例えば、ＳＭＴＰプロトコルを使用して伝達されることができる。一例示的実施形態では、プライマリサーバ１１０はメッセージを受信し、同時にそれをシャドウサーバ１５０に伝達することができる。したがって、受信および伝達は、ほとんど同時に遂行されることができる。他の実施形態では、プライマリサーバ１１０は、メッセージをシャドウサーバ１５０に転送する前に電子メッセージの受信を完了することができる。
【００２５】
ステップ２１６で、プライマリサーバ１１０が、電子メッセージを所期の受信者のメッセージボックスへの途中の次の場所に転送することができなかったかどうかが判定される。プライマリサーバ１１０は、例えば、機能不良またはオフラインになっているために機能しない可能性がある。
【００２６】
プライマリサーバ１１０が機能した場合は、ステップ２２０で、シャドウサーバ１５０は電子メッセージを削除する。しかし、ステップ２１７で、プライマリサーバ１１０が機能しなかったと判定された場合は、ステップ２１８で、シャドウサーバ１５０が配信を完了する役割を引き受け、ステップ２２２で、電子メッセージを適切な機械に転送する。
【００２７】
図３は、高可用性転送が提供される電子メッセージを受信するプロセスの流れ図を提供する。ステップ３１０で、電子メッセージがサーバへの伝達のために用意されていることを示す通知が受信される。説明のために、通知はプライマリサーバ１１０で受信されると仮定する。通知は、例えば、電子メールがプライマリサーバ１１０に転送されるように用意されていることを示すＳＭＴＰ通知でもよい。
【００２８】
ステップ３１２で、サーバ１１０は、電子メッセージの転送をシャドウする役割を担うべき少なくとも１つのサーバを識別する。１つまたは複数のシャドウサーバを識別するために、いかなる適切な方法も利用することができる。例えば、プライマリサーバ１１０は、利用可能なサーバのリストからシャドウサーバを選択することができる。説明のために、ステップ３１２で、サーバ１５０がシャドウサーバとして識別されることとする。
【００２９】
複数のサーバが電子メッセージを転送するプロセスをシャドウする役割を担うと識別されることができることが理解されるであろう。例えば、電子メッセージを転送する際に複数の冗長性を提供するためにシャドウするべき複数のサーバが識別されることができる。さらに、１つまたは複数のシャドウサーバを識別するためにいかなる適切なロジックも使用されることができる。例えば、シャドウサーバは、別のネットワーク上に、または物理的に遠く離れたサイトに配置され、それによってフォールトトレランスの更なるレベルを提供する結果として識別されることができる。
【００３０】
ステップ３１４で、プライマリサーバ１１０は電子メッセージを受信し、その電子メッセージをシャドウサーバ１５０に伝達する。プライマリサーバ１１０は、例えば、ＳＭＴＰサーバでもよく、ＳＭＴＰプロトコルを使用して電子メッセージを受信することができる。一例示的実施形態では、プライマリサーバ１１０は、メッセージをディスク上に格納し、ディスク上に維持されているキュー内のメッセージをトラッキングすることができる。プライマリサーバ１１０はまた、電子メッセージをシャドウサーバ１５０に伝達する。プライマリサーバ１１０およびシャドウサーバ１５０がＳＭＴＰサーバである一例示的実施形態では、電子メッセージはＳＭＴＰを使用して伝達される。一例示的実施形態では、プライマリサーバ１１０は、メッセージをシャドウサーバ１５０に転送する前に電子メッセージの受信を完了することができる。代替実施形態では、プライマリサーバ１１０はメッセージを受信し、同時にメッセージをシャドウサーバ１５０に伝達することができる。同時の配信は、冗長性を提供することに費やされる時間を低減する可能性を提供する。潜在的実施形態では、ＳＭＴＰプロトコルは、電子メッセージをターゲットサーバおよびシャドウサーバに自動的に伝達するように修正されることができる。
【００３１】
ステップ３１６で、プライマリサーバ１１０は、電子メッセージを、電子メッセージの所期の受信者への経路上で次のサーバに伝達する。例えば、プライマリサーバ１１０は、コンピューティング装置１７０および１８０から自分のメッセージボックスにアクセスする所期の受信者のメッセージボックスに電子メッセージを格納することができるサーバ１３０に、電子メッセージを転送することができる。プライマリサーバ１１０および１３０がＳＭＴＰサーバである一実施形態では、電子メールはＳＭＴＰを使用して転送されることができる。
【００３２】
ステップ３１８で、プライマリサーバ１１０は、プライマリサーバ１１０が特定のメッセージを適切なサーバに配信したことをシャドウサーバ１５０に通知する。プライマリサーバ１１０は、シャドウサーバ１５０にいかなる適切な方法ででも通知することができる。一例示的実施形態では、プライマリサーバ１１０は、特にシャドウサーバ１５０に通知するために通知を行うことができる。通知は、例えば、メッセージの識別、およびメッセージが転送された時刻を特定することができる。他の例示的実施形態では、プライマリサーバ１１０は、メッセージが何か他の目的のための通知に関連して転送されたことを通知することができる。例えば、プライマリサーバ１１０は、シャドウサーバ１５０が別の電子メッセージに関連してシャドウサーバとして動作するようにという次に続く要求に関連してシャドウサーバ１５０に通知することができる。
【００３３】
プライマリサーバ１１０は、電子メッセージを無事に転送し終えると、ステップ３２０で、電子メッセージをそのメモリから除去する。
【００３４】
図４は、シャドウサーバにおける例示的処理の流れ図である。図示されているように、ステップ４１０で、シャドウサーバ１５０は、シャドウサーバとして動作するようにとの要求をプライマリサーバ１１０から受信する。一例示的実施形態では、サーバ間の通信はＳＭＴＰを使用して行われる。
【００３５】
ステップ４１２で、シャドウサーバ１５０は、シャドウサーバ１５０が特定の電子メッセージのためのシャドウサーバとして動作するために利用可能であることを確認応答する。ステップ４１４で、シャドウサーバ１５０は、電子メッセージのコピーを受信し、それをメモリに格納する。一例示的実施形態では、シャドウサーバ１５０は、シャドウサーバ１５０がシャドウする役割を引き受けたメッセージのキューにメッセージを入れることができる。
【００３６】
ステップ４１６で、シャドウサーバ１５０は、プライマリサーバ１１０が電子メッセージを所期の受信者のメッセージボックスにある最終宛先への途中の次の場所に転送したという指示（indication）がないか監視する。具体的には、シャドウサーバ１５０は、メッセージが配信されたことを示すプライマリサーバ１１０からの通知がないか監視することができる。
【００３７】
ステップ４１８で、シャドウサーバ１５０は、電子メッセージがプライマリサーバ１１０によって首尾よく伝達されたかどうかについての判定を行う。ステップ４１８で、シャドウサーバ１５０は、メッセージがプライマリサーバ１１０によって首尾よく伝達されたと判定した場合は、ステップ４２０で、シャドウサーバ１５０はそのメッセージのコピーを削除する。いくつかの環境では、電子メッセージは複数の所期の受信者を有することがあることに留意されたい。そのような場合では、シャドウサーバ１５０は、電子メッセージが複数の所期の受信者の全てに転送されたという指示を判定／受信するまで、その電子メッセージのコピーを維持するように構成されることができる。
【００３８】
ステップ４１８で、メッセージが伝達されなかったとシャドウサーバ１５０が判定した場合は、ステップ４１９で、プライマリサーバ１１０が機能したか否かが判定される。プライマリサーバ１１０は、例えば、機能不良またはオフラインになっているために機能しない可能性がある。シャドウサーバ１５０は、プライマリサーバ１１０が応答するようにとの要求を送信することにより、プライマリサーバ１１０が機能したか否かを判定することができる。ステップ４１９で、プライマリサーバ１１０が機能したと判定された場合は、ステップ４１８で処理が継続する。しかし、ステップ４１９で、プライマリサーバ１１０が機能しなかったと判定された場合は、ステップ４２２で、シャドウサーバ１５０が配信を完了する役割を引き受けてメッセージを再送する。
【００３９】
図５は、冗長電子メッセージトランスポートを提供するように構成された２つの例示的ＳＭＴＰサーバの構成要素を示す。説明のために、図示されているサーバは、プライマリサーバ５１０およびシャドウサーバ５５０と呼ばれてもよい。サーバ５１０および５５０のそれぞれは、メッセージが特定のサーバに転送されるように用意されていることを示す通知を受信するように構成されたＳＭＴＰプロキシ５６０を備える。したがって、プライマリサーバ５１０が、電子メッセージが配信のための用意ができていることを示す通知を受信した場合、通知は、ＳＭＴＰインプロキシ５６０によって処理される。さらに、ＳＭＴＰプロキシ５６０は、それが関連するサーバ、例えば、プライマリサーバ５１０、およびシャドウサーバ５５０の両方に着信電子メッセージを伝達するように構成される。一例示的実施形態では、ＳＭＴＰプロキシ５６０は、プライマリサーバ５１０の残余の構成要素とは別個のサーバ機械として実装されることができることを当業者は理解するであろう。
【００４０】
サーバ５１０および５５０はまた、特定の機械上でシャドウされるべき電子メッセージを受信するように構成されたＳＭＴＰインコレクタ５６２を備える。再生キュー５６４は、特定のサーバ機械上でシャドウされる電子メッセージのための記憶領域である。シャドウサーバ５５０がプライマリサーバ５１０のＳＭＴＰインプロキシ５６０から電子メッセージを受信した場合、電子メッセージはＳＭＴＰインコレクタ５６２で受信され、再生キュー５６４に格納される。
【００４１】
ＳＭＴＰインスタック５６６は、特定のサーバで受信されてその特定のサーバが次に続く配信の役割を担う電子メッセージの初期処理を行うように構成される。ＳＭＴＰインスタック５６６は、ＳＭＴＰインプロキシ５６０から電子メッセージを受信し、そのメッセージを前分類（pre-categorization）キュー５６８に格納する。
【００４２】
カテゴライザ５７０は、前分類キュー５６８内のメッセージがどのようにどこへ配信されるべきかを判定するように構成される。カテゴライザ５７０は、メッセージがどこへ向けられるべきかを判定するためにメッセージヘッダ情報を使用することができる。メッセージは、カテゴライザ５７０によって処理された後で、配信のために後分類（post-categorization）キュー５７２に格納される。
【００４３】
ＳＭＴＰアウトスタック５７４は、後分類キュー５７２に格納されている電子メッセージを伝達するように構成される。ＳＭＴＰアウトスタック５７４はまた、メッセージが配信されたことをシャドウサーバ５５０上に配置されている再生キュー５６４に通知するように構成される。
【００４４】
例示的シナリオでは、プライマリサーバ５１０のＳＭＴＰインプロキシ５６０は、電子メッセージがプライマリサーバ５１０への配信のために用意されていることを示す通知を受信する。ＳＭＴＰインプロキシ５６０は、特定のメッセージのためのシャドウサーバであるべきサーバ５５０を識別する。ＳＭＴＰインプロキシ５６０は、電子メッセージがプライマリサーバ５１０のＳＭＴＰインスタック５６６で受信されるように、電子メッセージをシャドウサーバ５５０のＳＭＴＰインコレクタ５６２に伝達する。一例示的実施形態では、ＳＭＴＰプロトコルは、応答を含むＳＭＴＰ通知がＳＭＴＰインプロキシ５６０によって集約され、次いでシャドウストリームに添付されるようなやり方で修正される。これは、データが２つ（またはそれ以上）の場所に事実上同時に送信され、次いで、プライマリＳＭＴＰトランザクションからのステータス（リターンコード）を、処理のためにシャドウセッションに添付されることができるようにするパイプライン効果を有する。
【００４５】
ＳＭＴＰインスタック５６６は電子メッセージを前分類キュー５６８に格納する。ＳＭＴＰインコレクタ５６２は電子メッセージのシャドウコピーを再生キュー５６４に格納する。
【００４６】
カテゴライザ５７０は、電子メッセージがどのようにどこへ転送されるべきかを識別するために電子メッセージを処理し、メッセージをアドレス情報と共に後分類キュー５７２に格納する。
【００４７】
ＳＭＴＰアウトスタック５７４は、キュー５７２からメッセージを取り出し、それを、カテゴライザ５７０によって判定された情報によって指示されたように適切なサーバに配信する。ＳＭＴＰアウトスタック５７４はキュー５７２からメッセージを除去し、メッセージが配信されたことをシャドウサーバ５５０の再生キュー５６４に通知する。次いで、再生キュー５６４はメッセージのシャドウコピーを削除する。
【００４８】
再生キュー５６４で電子メッセージのシャドウコピーが受信された場合、シャドウサーバ５５０は、プライマリサーバ５１０がメッセージを配信するのに成功するかどうかを監視し始める。プライマリサーバが成功しなかったとシャドウサーバ５５０が判定した場合は、シャドウサーバ５５０はその通常の手順を使用して制御を行い、電子メッセージを配信することになる。そのような場合には、電子メッセージはシャドウサーバ５５０のＳＭＴＰインスタック５６６によって受信され、プライマリサーバ５１０に関連して上記で説明されたように処理が開始する。
【００４９】
（更なる冗長メッセージ転送方法）
図２から５に関連して説明された冗長メッセージ転送を提供する実施形態では、シャドウサーバは、プライマリサーバが電子メッセージをそこから受信したサーバ以外のサーバであると仮定した。図６から８に関連して説明される他の実施形態では、電子メッセージをプライマリサーバに転送するサーバは、シャドウサーバとして動作する。図６から８の方法によれば、電子メッセージを転送するサーバは、メッセージを受信するサーバが、メッセージがさらに別のサーバに転送されたという指示を提供するまで、メッセージのシャドウコピーを維持する。
【００５０】
図６に示されているように、ステップ６１０で、第１のメッセージサーバは、メッセージが第２のメッセージサーバに転送されるように用意されているという通知を別のメッセージサーバに提供する。例えば、図１のサーバ１１０は、電子メッセージがサーバ１１０によってサーバ１２０に転送されるように用意されていることをサーバ１２０に通知することができる。この説明では、この通知を受信し、電子メッセージが転送されてくるメッセージサーバは、プライマリサーバと呼ばれてもよい。
【００５１】
ステップ６１２で、サーバ１１０は、プライマリサーバ１２０がメッセージを別のサーバに配信するまで、サーバ１１０が電子メッセージのシャドウコピーを維持することになることをプライマリサーバ１２０に通知する。言い換えれば、サーバ１１０は、サーバ１１０が特定のメッセージのためのシャドウサーバとして動作することになることを通知する。通知は、例えば、ＳＭＴＰフォーマットされた通知でもよい。
【００５２】
ステップ６１４で、プライマリサーバ１２０はメッセージを受信し、格納する。例えば、プライマリサーバ１２０は、プライマリサーバ１２０が、例えば、ディスクおよび／またはランダムアクセスメモリでもよいメモリに維持しているメッセージのキューにメッセージを格納することができる。メッセージは、例えば、ＳＭＴＰプロトコルを使用して、受信されることができる。
【００５３】
ステップ６１６で、プライマリサーバ１２０が、電子メッセージを所期の受信者のメッセージボックスへの途中の次の場所に配信したかどうかがシャドウサーバによって判定される。メッセージが配信された場合は、ステップ６２０で、シャドウサーバ１１０はメッセージのシャドウコピーを削除する。プライマリサーバ１２０も同様にそのコピーを削除する。
【００５４】
メッセージが配信されなかった場合は、ステップ６１７で、シャドウサーバ１１０は、プライマリサーバ１２０が機能したか否かを判定する。例えば、シャドウサーバ１１０はプライマリサーバ１２０に状態を問い合わせることができる。プライマリサーバ１２０が機能した場合は、ステップ６１６で処理が継続する。しかし、ステップ６１７でプライマリサーバが機能しなかったと判定された場合は、ステップ６１８でシャドウサーバ１５０が配信を完了する役割を引き受け、ステップ６２２で電子メッセージを適切な機械に再送する。
【００５５】
図７は、高可用性転送が提供される電子メッセージを受信するプロセスの流れ図を提供する。ステップ７１０で、電子メッセージがサーバへの伝達のために用意されていることを示す通知がサーバで受信される。例えば、通知はサーバ１１０から送信され、プライマリサーバ１２０で受信されると仮定することができる。通知は、例えば、電子メールがプライマリサーバ１２０に転送されるように用意されていることを示すＳＭＴＰ通知でもよい。
【００５６】
ステップ７１２で、プライマリサーバ１２０は、プライマリサーバ１２０が冗長メッセージ転送をサポートすることを通告する。言い換えれば、プライマリサーバ１２０は、メッセージがプライマリサーバ１２０に転送されようとしているという通知を受信すると、プライマリサーバ１２０が冗長通知を提供するためにシャドウサーバと共に稼働するように動作可能であることを知られるようにする。
【００５７】
ステップ７１４で、プライマリサーバ１２０は、サーバ１１０が特定の電子通知のためのシャドウサーバとして動作する（opt-in）という通知をサーバ１１０から受信する。言い換えれば、電子メッセージを送信しているサーバ１１０は、サーバ１１０が電子メッセージをプライマリサーバ１２０に送信した後でメッセージのコピーを維持することになることをプライマリサーバ１２０に通知する。
【００５８】
ステップ７１６で、プライマリサーバ１２０は電子メッセージを受信する。プライマリサーバ１２０は、例えば、ＳＭＴＰサーバでもよく、ＳＭＴＰプロトコルを使用して電子メッセージを受信することができる。一例示的実施形態では、プライマリサーバ１２０は、ディスク上にメッセージを格納し、ディスク上に維持されているキュー内のメッセージをトラッキングすることができる。
【００５９】
ステップ７１８で、プライマリサーバ１２０は、電子メッセージを電子メッセージの所期の受信者への経路上で次のサーバに伝達する。例えば、プライマリサーバ１２０は、コンピューティング装置１７０および１８０から自分のメッセージボックスにアクセスする所期の受信者のメッセージボックスに電子メッセージを格納することができるサーバ１３０に、電子メッセージを転送することができる。プライマリサーバ１２０および受信側サーバ１３０がＳＭＴＰサーバである一例示的実施形態では、電子メールはＳＭＴＰを使用して転送されることができる。
【００６０】
ステップ７２０で、プライマリサーバ１２０は、プライマリサーバ１２０が特定のメッセージを適切なサーバに配信したことをシャドウサーバ１１０に通知する。プライマリサーバ１２０は、シャドウサーバ１１０にいかなる適切な方法ででも通知することができる。一例示的実施形態では、プライマリサーバ１２０は、特にシャドウサーバ１１０に通知するために通知を行うことができる。通知は、例えば、メッセージの識別、およびメッセージが転送された時刻を特定することができる。プライマリサーバ１２０は、電子メッセージを無事に転送し終えると、電子メッセージをそのメモリから除去する。
【００６１】
図８は、シャドウサーバにおける例示的処理の流れ図であり、シャドウサーバは、電子メッセージをプライマリサーバに転送するサーバである。図示されているように、ステップ８１０で、サーバ１１０は、電子メッセージが配信のために利用可能であることをプライマリサーバ１２０に通知する。一例示的実施形態では、サーバ間の通信はＳＭＴＰを使用して行われる。
【００６２】
ステップ８１２で、サーバ１１０は、プライマリサーバ１２０から、プライマリサーバが電子メッセージのシャドウイングをサポートするという指示を受信する。
【００６３】
ステップ８１４で、サーバ１１０は、サーバ１１０が特定の電子メッセージのためのシャドウサーバとして動作することになることをプライマリサーバ１２０に通知する。この時点で、シャドウサーバと呼ばれてもよいサーバ１１０は、サーバ１１０上でシャドウされている電子メッセージをトラッキングし始めることができる。一例示的実施形態では、シャドウサーバ１１０は、シャドウサーバ１１０がシャドウする役割を引き受けたメッセージのキューにメッセージを入れることができる。
【００６４】
ステップ８１６で、サーバ１１０はメッセージをプライマリサーバ１２０に配信する。
【００６５】
ステップ８１８で、シャドウサーバ１１０は、プライマリサーバ１２０が電子メッセージを所期の受信者のメッセージボックスにある最終宛先への途中の次の場所に転送したという指示がないか監視する。具体的には、シャドウサーバ１１０は、メッセージが配信されたことを示すプライマリサーバ１２０からの通知がないか監視することができる。
【００６６】
ステップ８２０で、シャドウサーバ１１０は、電子メッセージがプライマリサーバ１２０によって首尾よく伝達されたか否かについての判定を行う。ステップ８２０で、メッセージがプライマリサーバ１２０によって首尾よく配信されたとシャドウサーバ１１０が判定した場合は、ステップ８２２で、シャドウサーバ１１０はそのメッセージのコピーを削除する。いくつかの環境では、電子メッセージは複数の所期の受信者を有する可能性があり、プライマリサーバ１２０は電子メッセージを複数の所期の受信者のそれぞれのために別々に転送する役割を担うことに留意されたい。そのような場合、シャドウサーバ１１０は、電子メッセージが複数の所期の受信者の全てに転送されたという指示をシャドウサーバ１１０が判定／受信するまで、その電子メッセージのコピーを維持するように構成されることができる。
【００６７】
ステップ８２０で、メッセージがタイムリーに伝達されなかったとシャドウサーバ１１０が判定した場合、ステップ８２１で、シャドウサーバ１１０は、プライマリサーバ１２０が機能したか否かを判定する。シャドウサーバ１１０は、プライマリサーバ１２０が応答するようにとの要求を送信することにより、プライマリサーバ１２０が機能したか否かを判定することができる。ステップ８２１で、プライマリサーバ１２０が機能したと判定された場合は、ステップ８２０で処理が継続する。しかし、ステップ８２１で、プライマリサーバ１２０が機能しなかったと判定された場合は、ステップ８２４で、シャドウサーバ１１０は制御を引き受けてメッセージを次の適切なサーバに再送または転送する。
【００６８】
（例示的コンピューティング環境）
図９は、例示的コンピューティング構成１００において使用されることができる例示的コンピューティング環境９２０を示す。例示的コンピューティング環境９２０は、高可用性メッセージ転送を提供するための開示された方法を実施する複数の方法において使用されることができる。例えば、コンピューティング環境９２０は、高可用性メッセージ転送を提供するコンピュータサーバ１１０、１２０、１３０、１４０、１５０、および１６０として動作することができる。
【００６９】
コンピューティング環境９２０は、適切なコンピューティング環境の１つの例にすぎず、本発明の使用または機能の範囲に関していかなる限定をも示唆しないものとする。さらに、コンピューティング環境９２０は、例示的動作環境９２０に例示されている構成要素のいずれか１つまたはいかなる組合せに関してもいかなる従属関係または必要条件をも有しないと解釈されたい。
【００７０】
本発明の諸態様は、多数の他の汎用または専用コンピューティングシステム環境または構成で動作可能である。本発明に関しての使用に適している可能性がある周知のコンピューティングシステム、環境および／または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、ポータブルメディアデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブルコンシューマエレクトロニクス、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記システムまたは装置のいずれかを含む分散コンピューティング環境などを含むがそれらに限定されない。
【００７１】
本発明の諸態様を実施するための例示的システムは、コンピュータ９４１の形態での汎用コンピューティング装置を含む。コンピュータ９４１の構成要素は、処理装置９５９、システムメモリ９２２、およびシステムメモリを含む様々なシステム構成要素を処理装置９５９に結合するシステムバス９２１を含むがそれらに限定されない。システムバス９２１は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのいずれかを使用するローカルバスを含むいくつかのタイプのバス構造のいずれでもよい。例として、限定としてではなく、そのようなアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ電子規格協会（ＶＥＳＡ）ローカルバス、およびメザニンバスとしても知られている周辺機器相互接続（ＰＣＩ）バスを含む。
【００７２】
コンピュータ９４１は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ９４１によってアクセスされることができるいかなる利用可能な媒体でもよく、揮発性媒体および不揮発性媒体の両方、取外し可能な媒体および取外し不可能な媒体を含む。例として、限定としてではなく、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を備えてもよい。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶のためのいかなる方法または技術ででも実施される揮発性媒体および不揮発性媒体、取外し可能な媒体および取外し不可能な媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記録装置、あるいは、所望の情報を格納するために使用されることができ、コンピュータ９４１によってアクセスされることができるいかなる他の媒体をも含むがそれらに限定されない。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、あるいは、搬送波または他のトランスポート機構などの変調データ信号内の他のデータを包含し、いかなる情報配信媒体をも含む。用語「変調データ信号」は、信号内の情報を符号化するような方法で設定または変更された１つまたは複数の特性を有する信号を含む。例として、限定としてではなく、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響、ＲＦ、赤外線および他の無線媒体などの無線媒体を含む。上記のいずれの組合せも、コンピュータ可読媒体の範囲に含まれるものとする。
【００７３】
システムメモリ９２２は、読出し専用メモリ（ＲＯＭ）９２３およびランダムアクセスメモリ（ＲＡＭ）９６０などの揮発性メモリおよび／または不揮発性メモリの形態でのコンピュータ記憶媒体を含む。起動中などにコンピュータ９４１の中の構成要素間で情報を転送するのを支援する基本ルーチンを含む基本入出力システム９２４（ＢＩＯＳ）は、通常、ＲＯＭ９２３に格納されている。ＲＡＭ９６０は、通常、処理装置９５９によって直接アクセス可能であり、かつ／または処理装置９５９によって現在操作されているデータおよび／またはプログラムモジュールを含む。例として、限定としてではなく、図９は、オペレーティングシステム９２５、アプリケーションプログラム９２６、他のプログラムモジュール９２７、およびプログラムデータ９２８を示す。
【００７４】
コンピュータ９４１はまた、他の取外し可能な／取外し不可能な、揮発性／不揮発性コンピュータ記憶媒体を含んでもよい。例としてのみ、図９は、取外し不可能な不揮発性磁気媒体から読み出しまたはそれらに書き込むハードディスクドライブ９３８、取外し可能な不揮発性磁気ディスク９５４から読み出しまたはそれらに書き込む磁気ディスクドライブ９３９、および、ＣＤ−ＲＯＭまたは他の光媒体などの取外し可能な不揮発性光ディスク９５４から読み出しまたはそれらに書き込む光ディスクドライブ９４０を例示する。例示的動作環境で使用されることができる他の取外し可能な／取外し不可能な、揮発性／不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体ＲＡＭ、半導体ＲＯＭなどを含むがそれらに限定されない。ハードディスクドライブ９３８は、通常、インターフェース９３４などの取外し不可能なメモリインターフェースを介してシステムバス９２１に接続され、磁気ディスクドライブ９３９および光ディスクドライブ９４０は、通常、インターフェース９３５などの取外し可能なメモリインターフェースによってシステムバス９２１に接続される。
【００７５】
上記で論じられ図９で例示されたドライブおよびそれらの関連コンピュータ記憶媒体は、コンピュータ９４１のために、コンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの記憶装置を提供する。図９では、例えば、ハードディスクドライブ９３８は、オペレーティングシステム９５８、アプリケーションプログラム９５７、他のプログラムモジュール９５６、およびプログラムデータ９５５を格納しているように例示されている。これらの構成要素は、オペレーティングシステム９２５、アプリケーションプログラム９２６、他のプログラムモジュール９２７、およびプログラムデータ９２８と同じものでも、あるいは異なるものでもよいことに留意されたい。オペレーティングシステム９５８、アプリケーションプログラム９５７、他のプログラムモジュール９５６、およびプログラムデータ９５５は、少なくともそれらがそれぞれ異なるコピーであることを例示するために、ここではそれぞれ異なる番号を与えられている。ユーザは、キーボード９５１、および、一般に、マウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス９５２などの入力装置を介してコンピュータ９４１にコマンドおよび情報を入力することができる。他の入力装置（図示されていない）には、マイクロホン、ジョイスティック、ゲームパッド、衛星アンテナ、スキャナなどがあり得る。これらおよび他の入力装置は、しばしば、システムバスに結合されたユーザ入力インターフェース９３６を介して処理装置９５９に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）など、他のインターフェースおよびバス構造によって接続されてもよい。モニタ９４２または他のタイプの表示装置も、ビデオインターフェース９３２などのインターフェースを介してシステムバス９２１に接続される。モニタに加えて、コンピュータはまた、出力周辺インターフェース９３３を介して接続されることができるスピーカ９４４およびプリンタ９４３など、他の周辺出力装置を含んでもよい。
【００７６】
このように、冗長コールサービスを提供するシステムを開示した。開示された実施形態では、本システムは、ボイスコールのサービス全体の間中に冗長性を、とりわけ、ボイスメール録音中に冗長性を提供する。本システムはボイスメール録音以外のシナリオ中に冗長性を提供するために利用されることができることを当業者は理解するであろう。例えば、冗長コールサービスシステムは、チェックボイスメールにコールを入れるボイスメールユーザにサービスを提供するために利用されることができる。実際、プライマリサーバとセカンダリサーバとの間の主要な状態遷移を共有するための開示されたシステムおよび方法は、全てでなくてもほとんどのインタラクティブボイスレスポンス（ＩＶＲ）サービスに冗長性を提供するために利用されることができる。
【００７７】
本明細書に記載の様々な技法は、ハードウェアまたはソフトウェアに関連して、あるいは、適切な場合には、両方の組合せに関連して、実施されることができることを理解されたい。したがって、本明細書に記載の方法および機器、あるいはいくつかの態様またはそれらの一部分は、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ハードドライブ、または他のいかなる機械可読記憶媒体などの有形媒体にも包含されるプログラムコード（すなわち、命令）の形を取ることが可能であり、プログラムコードがコンピュータなどの機械にロードされ、機械によって実行された場合、機械は本発明を実施するための機器になる。プログラムコードが媒体上に格納されている場合には、プログラムコードは、問題の諸行為をひとまとめにして行う１つまたは複数の媒体上に格納されていると言える、すなわち、１つまたは複数の媒体は、諸行為を行うためのコードをまとめて含有するが、−複数の単一の媒体がある場合は−、コードのいかなる特定の部分も、いかなる特定の媒体上にも格納される必要がない。プログラマブルコンピュータ上でのプログラムコードの実行の場合は、コンピューティングデバイスは、一般に、プロセッサ、プロセッサによって読出し可能な記憶媒体（揮発性および不揮発性メモリおよび／または記憶要素を含む）、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。例えば、ＡＰＩ、再使用可能制御装置などの使用によって、本発明に関して説明されたプロセスを実施または利用することができる１つまたは複数のプログラムは、好ましくは、コンピュータシステムと通信するために高級手続き型プログラミング言語またはオブジェクト指向プログラミング言語で実装される。しかし、プログラム（１つまたは複数）は、所望された場合は、アセンブリ言語または機械語で実装されることもできる。いずれの場合でも、言語は、コンパイル型言語でも、インタプリタ型言語でもよく、ハードウェア実装と組み合わされてもよい。
【００７８】
例示的実施形態は、１つまたは複数のスタンドアロンコンピュータシステムのコンテキストで本発明の諸態様を利用することに言及している場合もあるが、本発明は、そのように限定されるものではなく、ネットワークまたは分散コンピューティング環境など、いかなるコンピューティング環境に関連してでも実施されることができる。さらに、本発明の諸態様は、複数の処理チップまたは装置で、あるいはそれら全てにわたって実施されることが可能であり、記憶装置も同様に複数の装置全てにわたって実施されることが可能である。そのような装置には、パーソナルコンピュータ、ネットワークサーバ、ハンドヘルドデバイス、スーパコンピュータ、または自動車および飛行機などの他のシステムに組み込まれたコンピュータがあり得る。
【００７９】
本発明は、構造的特徴および／または方法論的行為に特有の言語で説明されてきたが、添付の特許請求の範囲で定義されている主題は、必ずしも上記で説明された特定の特徴または行為に限定されるわけではないことを理解されたい。むしろ、上記で説明された特定の特徴および行為は、特許請求の範囲を実施する例示的形態として開示されている。
【図１】
2010532637.tif 000003
【図２】
2010532637.tif 000004
【図３】
2010532637.tif 000005
【図４】
2010532637.tif 000006
【図５】
2010532637.tif 000007
【図６】
2010532637.tif 000008
【図７】
2010532637.tif 000009
【図８】
2010532637.tif 000010
【図９】
2010532637.tif 000011
【国際調査報告】
2010532637.tif 000012
2010532637.tif 000013