説明

高可用性トランスポート

システムは、高可用性電子メッセージ転送を提供する。電子メッセージが第1のメッセージングサーバに伝達された場合、電子メッセージのコピーは第2のサーバで維持される。電子メッセージは、電子メッセージが第3のサーバに首尾よく伝達されるまで両方のサーバ上で維持される。メッセージが第3のサーバに配信された後で、電子メッセージは、第1のサーバおよび第2のサーバの両方から除去される。第1のサーバが電子メッセージを第3のサーバに伝達することができない場合は、第2のサーバが伝達する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子メッセージの高可用性トランスポートを提供するシステムおよび方法に関する。
【背景技術】
【0002】
例えば、電子メールおよびインスタントメッセージングを提供するシステムなどの電子メッセージングシステムは、現代社会ではユビキタスになってきている。電子メッセージングシステムは学術的環境および企業環境で長年使用されてきて、今では個人消費者市場で広く使用されている。実際、電子メッセージングは非常に普及してきており、急速に多くの企業および個人のための好ましい通信手段になってきている。
【0003】
一般に、電子メッセージは、複数のメッセージングサーバを介して伝達された後で、最終的に所期の受信者のメッセージボックスに保存される。例えば、電子メッセージは、所期の受信者のためにメッセージを受信する役割を担うメッセージングサーバで受信されるまで、第1のメッセージングサーバで受信され、次いで第2のメッセージングサーバに転送され、次いで第3のメッセージングサーバに転送され、以下同様に転送されることができる。電子メッセージを伝達する役割を担う一連のメッセージングサーバのそれぞれで、電子メッセージは、メッセージングサーバが電子メッセージを一連のメッセージングサーバの次のメッセージングサーバに転送した後で廃棄される。電子メッセージが、所期の受信者にサービスを提供するメッセージングサーバで受信された場合、電子メッセージは受信者のメッセージボックスに格納される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の目的とするところは、電子メッセージの高可用性トランスポートを提供するシステムおよび方法を提供することにある。
【課題を解決するための手段】
【0005】
例示的システムは、所期の受信者のメールボックスに向けてメッセージを移動させるプロセスの一環として、電子メッセージを受信し、そのメッセージを他のメッセージングサーバに転送するようにプログラムされた、プライマリサーバとも呼ばれる第1のメッセージングサーバを備えることができる。例示的システムは、プライマリサーバで受信された電子メッセージのコピーを維持し、万一プライマリサーバが機能しない場合は、その電子メッセージを配信するようにプログラムされた、シャドウサーバとも呼ばれる第2のメッセージングサーバをさらに備える。一例示的システムでは、プライマリサーバおよびシャドウサーバは、SMTPを使用して通信するSMTPサーバである。
【0006】
例示的プライマリサーバは、別のサーバが電子メッセージをプライマリサーバに配信するように用意されていることを示す通知を受信するようにプログラムされる。プライマリサーバは、シャドウサーバとして動作するべき1つまたは複数の追加のサーバを識別する。プライマリサーバは、例えば、潜在的サーバと通信することにより、および/またはサーバのリストからサーバを識別することにより、シャドウサーバを識別することができる。
【0007】
次いで、プライマリサーバは、電子メッセージを受信する。プライマリサーバはまた、シャドウサーバとして識別された1つまたは複数のサーバに電子メッセージを伝達する。プライマリサーバは、処理中のいかなる適切な時点においてでも電子メッセージをシャドウサーバに伝達することができる。例えば、一例示的実施形態では、プライマリサーバは、メッセージを受信するのと同時にシャドウサーバにメッセージを伝達することができる。他の例示的実施形態では、プライマリサーバは、メッセージを受信し終えた後でシャドウサーバに電子メッセージを伝達することができる。
【0008】
プライマリサーバが予期されたように動作し続ける場合は、プライマリサーバは、メッセージが所期の受信者のメッセージボックスにある最終宛先へ前進するようにその次のサーバに電子メッセージを転送する。プライマリサーバはその次のサーバに電子メッセージを伝達した後で、メッセージが伝達されたことをシャドウサーバに通知する。次いで、プライマリサーバは、そのメッセージのコピーを廃棄する。プライマリサーバからの通知に応答して、シャドウサーバも同様にメッセージを廃棄する。
【0009】
シャドウサーバは、電子メッセージのコピーを受信した後で、プライマリサーバおよび電子メッセージの配信状態を監視する。プライマリサーバが機能していない、または宛先に電子メッセージを伝達するために利用可能でないとシャドウサーバが判定した場合、シャドウサーバ自体が電子メッセージを適切な宛先に伝達する。
【0010】
代替実施形態では、電子メッセージをプライマリサーバに最初に伝達するメッセージングサーバは、シャドウサーバとしても動作する。そのような実施形態では、電子メッセージを転送するサーバは、プライマリサーバがシャドウイング(shadowing)をサポートすることを認識し、そのサーバがシャドウサーバとして動作することになることをプライマリサーバに通知し、電子メッセージをプライマリサーバに転送した後で、電子メッセージのコピーを維持する。プライマリサーバは、電子メッセージを受信し、メッセージが所期の宛先に向かって前進するようにメッセージを別のサーバに転送する。プライマリサーバは、電子メッセージを次のサーバに配信するとすぐ、メッセージが配信されたことを、シャドウサーバ、すなわちメッセージをそこから受信したサーバに通知する。この通知を受信することに応答して、シャドウサーバは電子メッセージを廃棄する。プライマリサーバが電子メッセージを伝達しなかったとメッセージシャドウサーバが判定した場合は、メッセージシャドウサーバが役割を引き受けて電子メッセージを伝達する。
【0011】
本「発明の概要」は、以下の「発明を実施するための形態」でさらに詳細に説明する概念の抜粋を簡略化された形で紹介するために提供される。本「発明の概要」は、本発明の主要な特徴または本質的な特徴を識別することを意図するものではなく、また本発明の範囲を限定するために使用されることを意図するものでもない。他の特徴が以下で説明される。
【0012】
前述の概要および以下の例示的実施形態の説明は、添付の図面と併せて読むと、よりよく理解することができるだろう。開示されたシステムおよび方法の潜在的実施形態は図示されたものに限定されないことも理解されるだろう。
【図面の簡単な説明】
【0013】
【図1】本発明の諸態様を実施することができる例示的コンピューティング構成のネットワーク図である。
【図2】高可用性電子メッセージトランスポートを提供するプロセスの流れ図である。
【図3】高可用性メッセージトランスポートが提供される電子メッセージを受信するプロセスの流れ図である。
【図4】電子メッセージ転送で高可用性を提供するプロセスの流れ図である。
【図5】高可用性メッセージトランスポートを提供するように構成された例示的SMTPサーバの構成要素を示す図である。
【図6】高可用性電子メッセージトランスポートを提供するプロセスの流れ図である。
【図7】高可用性メッセージトランスポートが提供される電子メッセージを受信するプロセスの流れ図である。
【図8】電子メッセージ転送で高可用性を提供するプロセスの流れ図である。
【図9】本発明の諸態様を実装することができるコンピューティング環境のブロック図である。
【発明を実施するための形態】
【0014】
(概要)
電子メールおよびインスタントメッセージをトランスポートするシステムなど、既存の電子メッセージングシステムでは、電子メッセージは、所期の受信者にサービスを提供する役割を担うサーバに到達するまで、サーバからサーバへ次々に転送される。例えば、電子メールの場合、電子メールは、所期の受信者のメッセージボックスにサービスを提供するメッセージングサーバに電子メールが転送されるまで、第1のメッセージングサーバから第2のメッセージングサーバに伝達され、第2のメッセージングサーバから第3のメッセージングサーバに伝達され、以下同様に伝達されることができる。電子メッセージを伝達する一連のメッセージングサーバの各サーバでは、メッセージが次のメッセージングサーバに転送された後で、その電子メッセージのコピーを廃棄する。したがって、電子メッセージがサーバで受信され、次のサーバに転送されるまでの間、電子メッセージはその単一のサーバ上に存在することができる。万一サーバが機能しない場合は、電子メッセージが失われる可能性がある。
【0015】
トランスポート中にメッセージに冗長性を提供するシステムおよび方法が本明細書では開示される。一例示的実施形態では、電子メッセージが第1のサーバに伝達された場合、電子メッセージはまた、第2のサーバで維持される。電子メッセージは、メッセージの所期の受信者にサービスを提供するサーバに向けてメッセージを移動させる役割を担う一連のサーバの次のメッセージサーバに電子メッセージが首尾よく伝達されるまで、両方のサーバ上に維持される。メッセージが第1のサーバによって配信された後で、電子メッセージは第1のサーバおよび第2のサーバの両方から除去されることができる。万一第1のサーバが機能しない場合は、第2のサーバが介入してメッセージを適切なサーバに転送する。
【0016】
開示される方法は、市販のソフトウェアおよび標準的なハードウェアで実施されることができる。例えば、開示されるシステムおよび方法の一実施形態では、サーバはSMTPサーバとして実装されることができる。さらに、SMTPサーバは、既成の安価なコンピューティングハードウェア上で実装されることが可能であり、確立したネットワーキング技術およびプロトコルを使用して通信することができる。
【0017】
(例示的コンピューティング構成)
図1は、冗長電子メッセージングを提供するのに適した例示的コンピューティング構成100を示す。コンピューティング構成100では、複数の電子メッセージングサーバ110、120、130、140、150、および160のそれぞれが、電子メッセージを受信し、所期の受信者に転送するように構成される。サーバ110、120、130、140、150、および160のそれぞれは、冗長メッセージ転送を提供するために本明細書で説明されるように動作するようにとのコンピュータ可読命令と共にプログラムされたいかなる適切なコンピューティング装置でもよい。一例示的実施形態では、電子メッセージングサーバ110、120、130、140、150、および160は、例えば、電子メールを転送するように構成されたSMTPサーバでもよい。例示的メッセージングサーバ110、120、130、140、150、および160は、例えば、インスタントメッセージングサーバでもよい。例示的メッセージングサーバ110、120、130、140、150、および160は、電子メッセージを格納するために、それぞれ記憶領域112、122、132、142、152、および162を有する。さらに、メッセージングサーバ110、120、130、140、150、および160のそれぞれは、メッセージングサーバ130に関連して図示されているサーバ166などのメールボックスサーバを備える。メールボックス166は、メッセージを個々のユーザのメールボックスに配信するように動作可能である。図1には、6つのサーバ110、120、130、140、150、および160が図示されているが、構成100には複数のサーバがいくつ備えられてもよいことに留意されたい。
【0018】
電子メッセージングサーバ110、120、130、140、150、および160は、ネットワーク108に通信可能に結合される。ネットワーク108は、電子メールなどの電子メッセージを伝達するように構成され、データの移動に適したいかなるタイプのネットワークであってもよい。例えば、ネットワーク108は、ローカルエリアネットワーク(LAN)、公衆交換電話網、インターネット、または他の通信データに適したネットワークの全てあるいは一部分であっても、もしくはそれらの全てあるいは一部分を備えてもよい。ネットワーク108は、様々な技術を使用することができる個別のネットワークの組合せを備えてもよい。例えば、ネットワーク108は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、またはそれらの組合せを備えてもよく、無線ネットワークおよび有線ネットワークを含むいかなる適切なトポロジをも利用することができる。
【0019】
一例示的実施形態では、電子メッセージングサーバ110、120、130、140、150、および160は、電子メッセージを所期の送信者に向けて転送するためにネットワーク108を介して相互に通信するようにプログラムされる。例えば、図1で破線によって示されているように、電子メールなどの電子メッセージは、メッセージングサーバ110からメッセージングサーバ140に、次いで、メッセージングサーバ130に転送されることができる。メッセージングサーバ130は、電子メッセージの所期の受信者、およびメールボックスサーバ166によって個々のユーザのメールボックスに入れられた電子メッセージに対応することができる。ユーザは、コンピューティング装置170および180を使用して電子メッセージにアクセスすることができる。メッセージングサーバ110、120、130、140、150、および160は、電子メッセージを管理し、伝達するのに適したいかなるプロトコル(1つまたは複数)を使用してでも通信することができる。一例示的実施形態では、電子メッセージサーバは、SMTPを使用して通信することができる。
【0020】
一例示的実施形態では、電子メッセージが送信される予定であるという通知をメッセージングサーバ110、120、130、140、150、および160のうちの1つで受信するとすぐ、プライマリサーバとも呼ぶことができるサーバは、特定の電子メッセージのためのシャドウサーバとして動作するべき別のサーバを識別する。シャドウサーバは、メッセージをプライマリサーバに転送するサーバでもよく、プライマリサーバと通信している別のサーバでもよい。シャドウサーバを識別した後で、プライマリサーバは、電子メッセージを受信し、必要な場合は、すなわち、シャドウサーバがメッセージをプライマリサーバに転送するサーバでない場合、電子メッセージをシャドウサーバにも送信する。プライマリサーバが首尾よく電子メッセージを別のサーバに転送した、あるいはメッセージを所期の受信者のメッセージボックスに転送した場合、プライマリサーバは、このことをシャドウサーバに通知し、プライマリサーバ上のメッセージのコピーを削除する。プライマリサーバからの通知に応答して、シャドウサーバは電子メッセージを除去する。プライマリサーバがメッセージを転送したという通知をシャドウサーバがプライマリサーバから受信しない場合、シャドウサーバがその役割を担って電子メッセージを転送することができる。
【0021】
(冗長メッセージ転送方法)
図2は、冗長電子メッセージ転送を提供する例示的プロセスの流れ図である。ステップ210で、メッセージングサーバは、電子メッセージが特定のサーバに転送されるように用意されているという通知を受信する。例えば、別のサーバが電子メールを転送するように用意されていることを示す電子メッセージが、サーバ110で受信されることができる。この通知を受信し、電子メッセージが転送されてくる予定であるメッセージングサーバは、プライマリサーバと呼ばれてもよい。
【0022】
ステップ212で、プライマリサーバ110は、シャドウサーバとして動作する別のメッセージングサーバを識別する。図2から5に関連して説明される実施形態では、シャドウサーバは、プライマリサーバが電子メッセージをそこから受信したサーバ以外のサーバであるとする。図6から8に関連して以下で説明される他の実施形態では、電子メッセージをプライマリサーバに転送するサーバが、シャドウサーバとして動作する。
【0023】
図2を参照すると、ステップ212で、プライマリサーバ110は適切な方法によってシャドウサーバを識別する。例えば、プライマリサーバ110はメッセージを特定のサーバに伝達し、そのサーバが特定のメッセージのためのシャドウ機能で動作するように要求することができる。この要求は、例えば、SMTPフォーマットされた要求でもよい。代替実施形態では、プライマリサーバ110は利用可能なサーバのリストからシャドウサーバを選択することができる。一例示的実施形態では、プライマリサーバ110は、単一のメッセージのためのシャドウサーバとして動作するべき複数のメッセージングサーバを識別することができる。説明のために、メッセージングサーバ150がプライマリサーバ110によってシャドウサーバとして識別されたと仮定する。
【0024】
ステップ214で、プライマリサーバ110はメッセージを受信し、格納する。例えば、プライマリサーバ110は、ディスクおよび/またはランダムアクセスメモリでもよいメモリに維持しているメッセージのキューにメッセージを格納することができる。メッセージは、例えば、SMTPプロトコルを使用して受信されることができる。さらに、ステップ214で、プライマリサーバ110は、電子メッセージのコピーをシャドウサーバ150に伝達する。電子メッセージは、例えば、SMTPプロトコルを使用して伝達されることができる。一例示的実施形態では、プライマリサーバ110はメッセージを受信し、同時にそれをシャドウサーバ150に伝達することができる。したがって、受信および伝達は、ほとんど同時に遂行されることができる。他の実施形態では、プライマリサーバ110は、メッセージをシャドウサーバ150に転送する前に電子メッセージの受信を完了することができる。
【0025】
ステップ216で、プライマリサーバ110が、電子メッセージを所期の受信者のメッセージボックスへの途中の次の場所に転送することができなかったかどうかが判定される。プライマリサーバ110は、例えば、機能不良またはオフラインになっているために機能しない可能性がある。
【0026】
プライマリサーバ110が機能した場合は、ステップ220で、シャドウサーバ150は電子メッセージを削除する。しかし、ステップ217で、プライマリサーバ110が機能しなかったと判定された場合は、ステップ218で、シャドウサーバ150が配信を完了する役割を引き受け、ステップ222で、電子メッセージを適切な機械に転送する。
【0027】
図3は、高可用性転送が提供される電子メッセージを受信するプロセスの流れ図を提供する。ステップ310で、電子メッセージがサーバへの伝達のために用意されていることを示す通知が受信される。説明のために、通知はプライマリサーバ110で受信されると仮定する。通知は、例えば、電子メールがプライマリサーバ110に転送されるように用意されていることを示すSMTP通知でもよい。
【0028】
ステップ312で、サーバ110は、電子メッセージの転送をシャドウする役割を担うべき少なくとも1つのサーバを識別する。1つまたは複数のシャドウサーバを識別するために、いかなる適切な方法も利用することができる。例えば、プライマリサーバ110は、利用可能なサーバのリストからシャドウサーバを選択することができる。説明のために、ステップ312で、サーバ150がシャドウサーバとして識別されることとする。
【0029】
複数のサーバが電子メッセージを転送するプロセスをシャドウする役割を担うと識別されることができることが理解されるであろう。例えば、電子メッセージを転送する際に複数の冗長性を提供するためにシャドウするべき複数のサーバが識別されることができる。さらに、1つまたは複数のシャドウサーバを識別するためにいかなる適切なロジックも使用されることができる。例えば、シャドウサーバは、別のネットワーク上に、または物理的に遠く離れたサイトに配置され、それによってフォールトトレランスの更なるレベルを提供する結果として識別されることができる。
【0030】
ステップ314で、プライマリサーバ110は電子メッセージを受信し、その電子メッセージをシャドウサーバ150に伝達する。プライマリサーバ110は、例えば、SMTPサーバでもよく、SMTPプロトコルを使用して電子メッセージを受信することができる。一例示的実施形態では、プライマリサーバ110は、メッセージをディスク上に格納し、ディスク上に維持されているキュー内のメッセージをトラッキングすることができる。プライマリサーバ110はまた、電子メッセージをシャドウサーバ150に伝達する。プライマリサーバ110およびシャドウサーバ150がSMTPサーバである一例示的実施形態では、電子メッセージはSMTPを使用して伝達される。一例示的実施形態では、プライマリサーバ110は、メッセージをシャドウサーバ150に転送する前に電子メッセージの受信を完了することができる。代替実施形態では、プライマリサーバ110はメッセージを受信し、同時にメッセージをシャドウサーバ150に伝達することができる。同時の配信は、冗長性を提供することに費やされる時間を低減する可能性を提供する。潜在的実施形態では、SMTPプロトコルは、電子メッセージをターゲットサーバおよびシャドウサーバに自動的に伝達するように修正されることができる。
【0031】
ステップ316で、プライマリサーバ110は、電子メッセージを、電子メッセージの所期の受信者への経路上で次のサーバに伝達する。例えば、プライマリサーバ110は、コンピューティング装置170および180から自分のメッセージボックスにアクセスする所期の受信者のメッセージボックスに電子メッセージを格納することができるサーバ130に、電子メッセージを転送することができる。プライマリサーバ110および130がSMTPサーバである一実施形態では、電子メールはSMTPを使用して転送されることができる。
【0032】
ステップ318で、プライマリサーバ110は、プライマリサーバ110が特定のメッセージを適切なサーバに配信したことをシャドウサーバ150に通知する。プライマリサーバ110は、シャドウサーバ150にいかなる適切な方法ででも通知することができる。一例示的実施形態では、プライマリサーバ110は、特にシャドウサーバ150に通知するために通知を行うことができる。通知は、例えば、メッセージの識別、およびメッセージが転送された時刻を特定することができる。他の例示的実施形態では、プライマリサーバ110は、メッセージが何か他の目的のための通知に関連して転送されたことを通知することができる。例えば、プライマリサーバ110は、シャドウサーバ150が別の電子メッセージに関連してシャドウサーバとして動作するようにという次に続く要求に関連してシャドウサーバ150に通知することができる。
【0033】
プライマリサーバ110は、電子メッセージを無事に転送し終えると、ステップ320で、電子メッセージをそのメモリから除去する。
【0034】
図4は、シャドウサーバにおける例示的処理の流れ図である。図示されているように、ステップ410で、シャドウサーバ150は、シャドウサーバとして動作するようにとの要求をプライマリサーバ110から受信する。一例示的実施形態では、サーバ間の通信はSMTPを使用して行われる。
【0035】
ステップ412で、シャドウサーバ150は、シャドウサーバ150が特定の電子メッセージのためのシャドウサーバとして動作するために利用可能であることを確認応答する。ステップ414で、シャドウサーバ150は、電子メッセージのコピーを受信し、それをメモリに格納する。一例示的実施形態では、シャドウサーバ150は、シャドウサーバ150がシャドウする役割を引き受けたメッセージのキューにメッセージを入れることができる。
【0036】
ステップ416で、シャドウサーバ150は、プライマリサーバ110が電子メッセージを所期の受信者のメッセージボックスにある最終宛先への途中の次の場所に転送したという指示(indication)がないか監視する。具体的には、シャドウサーバ150は、メッセージが配信されたことを示すプライマリサーバ110からの通知がないか監視することができる。
【0037】
ステップ418で、シャドウサーバ150は、電子メッセージがプライマリサーバ110によって首尾よく伝達されたかどうかについての判定を行う。ステップ418で、シャドウサーバ150は、メッセージがプライマリサーバ110によって首尾よく伝達されたと判定した場合は、ステップ420で、シャドウサーバ150はそのメッセージのコピーを削除する。いくつかの環境では、電子メッセージは複数の所期の受信者を有することがあることに留意されたい。そのような場合では、シャドウサーバ150は、電子メッセージが複数の所期の受信者の全てに転送されたという指示を判定/受信するまで、その電子メッセージのコピーを維持するように構成されることができる。
【0038】
ステップ418で、メッセージが伝達されなかったとシャドウサーバ150が判定した場合は、ステップ419で、プライマリサーバ110が機能したか否かが判定される。プライマリサーバ110は、例えば、機能不良またはオフラインになっているために機能しない可能性がある。シャドウサーバ150は、プライマリサーバ110が応答するようにとの要求を送信することにより、プライマリサーバ110が機能したか否かを判定することができる。ステップ419で、プライマリサーバ110が機能したと判定された場合は、ステップ418で処理が継続する。しかし、ステップ419で、プライマリサーバ110が機能しなかったと判定された場合は、ステップ422で、シャドウサーバ150が配信を完了する役割を引き受けてメッセージを再送する。
【0039】
図5は、冗長電子メッセージトランスポートを提供するように構成された2つの例示的SMTPサーバの構成要素を示す。説明のために、図示されているサーバは、プライマリサーバ510およびシャドウサーバ550と呼ばれてもよい。サーバ510および550のそれぞれは、メッセージが特定のサーバに転送されるように用意されていることを示す通知を受信するように構成されたSMTPプロキシ560を備える。したがって、プライマリサーバ510が、電子メッセージが配信のための用意ができていることを示す通知を受信した場合、通知は、SMTPインプロキシ560によって処理される。さらに、SMTPプロキシ560は、それが関連するサーバ、例えば、プライマリサーバ510、およびシャドウサーバ550の両方に着信電子メッセージを伝達するように構成される。一例示的実施形態では、SMTPプロキシ560は、プライマリサーバ510の残余の構成要素とは別個のサーバ機械として実装されることができることを当業者は理解するであろう。
【0040】
サーバ510および550はまた、特定の機械上でシャドウされるべき電子メッセージを受信するように構成されたSMTPインコレクタ562を備える。再生キュー564は、特定のサーバ機械上でシャドウされる電子メッセージのための記憶領域である。シャドウサーバ550がプライマリサーバ510のSMTPインプロキシ560から電子メッセージを受信した場合、電子メッセージはSMTPインコレクタ562で受信され、再生キュー564に格納される。
【0041】
SMTPインスタック566は、特定のサーバで受信されてその特定のサーバが次に続く配信の役割を担う電子メッセージの初期処理を行うように構成される。SMTPインスタック566は、SMTPインプロキシ560から電子メッセージを受信し、そのメッセージを前分類(pre-categorization)キュー568に格納する。
【0042】
カテゴライザ570は、前分類キュー568内のメッセージがどのようにどこへ配信されるべきかを判定するように構成される。カテゴライザ570は、メッセージがどこへ向けられるべきかを判定するためにメッセージヘッダ情報を使用することができる。メッセージは、カテゴライザ570によって処理された後で、配信のために後分類(post-categorization)キュー572に格納される。
【0043】
SMTPアウトスタック574は、後分類キュー572に格納されている電子メッセージを伝達するように構成される。SMTPアウトスタック574はまた、メッセージが配信されたことをシャドウサーバ550上に配置されている再生キュー564に通知するように構成される。
【0044】
例示的シナリオでは、プライマリサーバ510のSMTPインプロキシ560は、電子メッセージがプライマリサーバ510への配信のために用意されていることを示す通知を受信する。SMTPインプロキシ560は、特定のメッセージのためのシャドウサーバであるべきサーバ550を識別する。SMTPインプロキシ560は、電子メッセージがプライマリサーバ510のSMTPインスタック566で受信されるように、電子メッセージをシャドウサーバ550のSMTPインコレクタ562に伝達する。一例示的実施形態では、SMTPプロトコルは、応答を含むSMTP通知がSMTPインプロキシ560によって集約され、次いでシャドウストリームに添付されるようなやり方で修正される。これは、データが2つ(またはそれ以上)の場所に事実上同時に送信され、次いで、プライマリSMTPトランザクションからのステータス(リターンコード)を、処理のためにシャドウセッションに添付されることができるようにするパイプライン効果を有する。
【0045】
SMTPインスタック566は電子メッセージを前分類キュー568に格納する。SMTPインコレクタ562は電子メッセージのシャドウコピーを再生キュー564に格納する。
【0046】
カテゴライザ570は、電子メッセージがどのようにどこへ転送されるべきかを識別するために電子メッセージを処理し、メッセージをアドレス情報と共に後分類キュー572に格納する。
【0047】
SMTPアウトスタック574は、キュー572からメッセージを取り出し、それを、カテゴライザ570によって判定された情報によって指示されたように適切なサーバに配信する。SMTPアウトスタック574はキュー572からメッセージを除去し、メッセージが配信されたことをシャドウサーバ550の再生キュー564に通知する。次いで、再生キュー564はメッセージのシャドウコピーを削除する。
【0048】
再生キュー564で電子メッセージのシャドウコピーが受信された場合、シャドウサーバ550は、プライマリサーバ510がメッセージを配信するのに成功するかどうかを監視し始める。プライマリサーバが成功しなかったとシャドウサーバ550が判定した場合は、シャドウサーバ550はその通常の手順を使用して制御を行い、電子メッセージを配信することになる。そのような場合には、電子メッセージはシャドウサーバ550のSMTPインスタック566によって受信され、プライマリサーバ510に関連して上記で説明されたように処理が開始する。
【0049】
(更なる冗長メッセージ転送方法)
図2から5に関連して説明された冗長メッセージ転送を提供する実施形態では、シャドウサーバは、プライマリサーバが電子メッセージをそこから受信したサーバ以外のサーバであると仮定した。図6から8に関連して説明される他の実施形態では、電子メッセージをプライマリサーバに転送するサーバは、シャドウサーバとして動作する。図6から8の方法によれば、電子メッセージを転送するサーバは、メッセージを受信するサーバが、メッセージがさらに別のサーバに転送されたという指示を提供するまで、メッセージのシャドウコピーを維持する。
【0050】
図6に示されているように、ステップ610で、第1のメッセージサーバは、メッセージが第2のメッセージサーバに転送されるように用意されているという通知を別のメッセージサーバに提供する。例えば、図1のサーバ110は、電子メッセージがサーバ110によってサーバ120に転送されるように用意されていることをサーバ120に通知することができる。この説明では、この通知を受信し、電子メッセージが転送されてくるメッセージサーバは、プライマリサーバと呼ばれてもよい。
【0051】
ステップ612で、サーバ110は、プライマリサーバ120がメッセージを別のサーバに配信するまで、サーバ110が電子メッセージのシャドウコピーを維持することになることをプライマリサーバ120に通知する。言い換えれば、サーバ110は、サーバ110が特定のメッセージのためのシャドウサーバとして動作することになることを通知する。通知は、例えば、SMTPフォーマットされた通知でもよい。
【0052】
ステップ614で、プライマリサーバ120はメッセージを受信し、格納する。例えば、プライマリサーバ120は、プライマリサーバ120が、例えば、ディスクおよび/またはランダムアクセスメモリでもよいメモリに維持しているメッセージのキューにメッセージを格納することができる。メッセージは、例えば、SMTPプロトコルを使用して、受信されることができる。
【0053】
ステップ616で、プライマリサーバ120が、電子メッセージを所期の受信者のメッセージボックスへの途中の次の場所に配信したかどうかがシャドウサーバによって判定される。メッセージが配信された場合は、ステップ620で、シャドウサーバ110はメッセージのシャドウコピーを削除する。プライマリサーバ120も同様にそのコピーを削除する。
【0054】
メッセージが配信されなかった場合は、ステップ617で、シャドウサーバ110は、プライマリサーバ120が機能したか否かを判定する。例えば、シャドウサーバ110はプライマリサーバ120に状態を問い合わせることができる。プライマリサーバ120が機能した場合は、ステップ616で処理が継続する。しかし、ステップ617でプライマリサーバが機能しなかったと判定された場合は、ステップ618でシャドウサーバ150が配信を完了する役割を引き受け、ステップ622で電子メッセージを適切な機械に再送する。
【0055】
図7は、高可用性転送が提供される電子メッセージを受信するプロセスの流れ図を提供する。ステップ710で、電子メッセージがサーバへの伝達のために用意されていることを示す通知がサーバで受信される。例えば、通知はサーバ110から送信され、プライマリサーバ120で受信されると仮定することができる。通知は、例えば、電子メールがプライマリサーバ120に転送されるように用意されていることを示すSMTP通知でもよい。
【0056】
ステップ712で、プライマリサーバ120は、プライマリサーバ120が冗長メッセージ転送をサポートすることを通告する。言い換えれば、プライマリサーバ120は、メッセージがプライマリサーバ120に転送されようとしているという通知を受信すると、プライマリサーバ120が冗長通知を提供するためにシャドウサーバと共に稼働するように動作可能であることを知られるようにする。
【0057】
ステップ714で、プライマリサーバ120は、サーバ110が特定の電子通知のためのシャドウサーバとして動作する(opt-in)という通知をサーバ110から受信する。言い換えれば、電子メッセージを送信しているサーバ110は、サーバ110が電子メッセージをプライマリサーバ120に送信した後でメッセージのコピーを維持することになることをプライマリサーバ120に通知する。
【0058】
ステップ716で、プライマリサーバ120は電子メッセージを受信する。プライマリサーバ120は、例えば、SMTPサーバでもよく、SMTPプロトコルを使用して電子メッセージを受信することができる。一例示的実施形態では、プライマリサーバ120は、ディスク上にメッセージを格納し、ディスク上に維持されているキュー内のメッセージをトラッキングすることができる。
【0059】
ステップ718で、プライマリサーバ120は、電子メッセージを電子メッセージの所期の受信者への経路上で次のサーバに伝達する。例えば、プライマリサーバ120は、コンピューティング装置170および180から自分のメッセージボックスにアクセスする所期の受信者のメッセージボックスに電子メッセージを格納することができるサーバ130に、電子メッセージを転送することができる。プライマリサーバ120および受信側サーバ130がSMTPサーバである一例示的実施形態では、電子メールはSMTPを使用して転送されることができる。
【0060】
ステップ720で、プライマリサーバ120は、プライマリサーバ120が特定のメッセージを適切なサーバに配信したことをシャドウサーバ110に通知する。プライマリサーバ120は、シャドウサーバ110にいかなる適切な方法ででも通知することができる。一例示的実施形態では、プライマリサーバ120は、特にシャドウサーバ110に通知するために通知を行うことができる。通知は、例えば、メッセージの識別、およびメッセージが転送された時刻を特定することができる。プライマリサーバ120は、電子メッセージを無事に転送し終えると、電子メッセージをそのメモリから除去する。
【0061】
図8は、シャドウサーバにおける例示的処理の流れ図であり、シャドウサーバは、電子メッセージをプライマリサーバに転送するサーバである。図示されているように、ステップ810で、サーバ110は、電子メッセージが配信のために利用可能であることをプライマリサーバ120に通知する。一例示的実施形態では、サーバ間の通信はSMTPを使用して行われる。
【0062】
ステップ812で、サーバ110は、プライマリサーバ120から、プライマリサーバが電子メッセージのシャドウイングをサポートするという指示を受信する。
【0063】
ステップ814で、サーバ110は、サーバ110が特定の電子メッセージのためのシャドウサーバとして動作することになることをプライマリサーバ120に通知する。この時点で、シャドウサーバと呼ばれてもよいサーバ110は、サーバ110上でシャドウされている電子メッセージをトラッキングし始めることができる。一例示的実施形態では、シャドウサーバ110は、シャドウサーバ110がシャドウする役割を引き受けたメッセージのキューにメッセージを入れることができる。
【0064】
ステップ816で、サーバ110はメッセージをプライマリサーバ120に配信する。
【0065】
ステップ818で、シャドウサーバ110は、プライマリサーバ120が電子メッセージを所期の受信者のメッセージボックスにある最終宛先への途中の次の場所に転送したという指示がないか監視する。具体的には、シャドウサーバ110は、メッセージが配信されたことを示すプライマリサーバ120からの通知がないか監視することができる。
【0066】
ステップ820で、シャドウサーバ110は、電子メッセージがプライマリサーバ120によって首尾よく伝達されたか否かについての判定を行う。ステップ820で、メッセージがプライマリサーバ120によって首尾よく配信されたとシャドウサーバ110が判定した場合は、ステップ822で、シャドウサーバ110はそのメッセージのコピーを削除する。いくつかの環境では、電子メッセージは複数の所期の受信者を有する可能性があり、プライマリサーバ120は電子メッセージを複数の所期の受信者のそれぞれのために別々に転送する役割を担うことに留意されたい。そのような場合、シャドウサーバ110は、電子メッセージが複数の所期の受信者の全てに転送されたという指示をシャドウサーバ110が判定/受信するまで、その電子メッセージのコピーを維持するように構成されることができる。
【0067】
ステップ820で、メッセージがタイムリーに伝達されなかったとシャドウサーバ110が判定した場合、ステップ821で、シャドウサーバ110は、プライマリサーバ120が機能したか否かを判定する。シャドウサーバ110は、プライマリサーバ120が応答するようにとの要求を送信することにより、プライマリサーバ120が機能したか否かを判定することができる。ステップ821で、プライマリサーバ120が機能したと判定された場合は、ステップ820で処理が継続する。しかし、ステップ821で、プライマリサーバ120が機能しなかったと判定された場合は、ステップ824で、シャドウサーバ110は制御を引き受けてメッセージを次の適切なサーバに再送または転送する。
【0068】
(例示的コンピューティング環境)
図9は、例示的コンピューティング構成100において使用されることができる例示的コンピューティング環境920を示す。例示的コンピューティング環境920は、高可用性メッセージ転送を提供するための開示された方法を実施する複数の方法において使用されることができる。例えば、コンピューティング環境920は、高可用性メッセージ転送を提供するコンピュータサーバ110、120、130、140、150、および160として動作することができる。
【0069】
コンピューティング環境920は、適切なコンピューティング環境の1つの例にすぎず、本発明の使用または機能の範囲に関していかなる限定をも示唆しないものとする。さらに、コンピューティング環境920は、例示的動作環境920に例示されている構成要素のいずれか1つまたはいかなる組合せに関してもいかなる従属関係または必要条件をも有しないと解釈されたい。
【0070】
本発明の諸態様は、多数の他の汎用または専用コンピューティングシステム環境または構成で動作可能である。本発明に関しての使用に適している可能性がある周知のコンピューティングシステム、環境および/または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、ポータブルメディアデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記システムまたは装置のいずれかを含む分散コンピューティング環境などを含むがそれらに限定されない。
【0071】
本発明の諸態様を実施するための例示的システムは、コンピュータ941の形態での汎用コンピューティング装置を含む。コンピュータ941の構成要素は、処理装置959、システムメモリ922、およびシステムメモリを含む様々なシステム構成要素を処理装置959に結合するシステムバス921を含むがそれらに限定されない。システムバス921は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのいずれかを使用するローカルバスを含むいくつかのタイプのバス構造のいずれでもよい。例として、限定としてではなく、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ電子規格協会(VESA)ローカルバス、およびメザニンバスとしても知られている周辺機器相互接続(PCI)バスを含む。
【0072】
コンピュータ941は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ941によってアクセスされることができるいかなる利用可能な媒体でもよく、揮発性媒体および不揮発性媒体の両方、取外し可能な媒体および取外し不可能な媒体を含む。例として、限定としてではなく、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を備えてもよい。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶のためのいかなる方法または技術ででも実施される揮発性媒体および不揮発性媒体、取外し可能な媒体および取外し不可能な媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記録装置、あるいは、所望の情報を格納するために使用されることができ、コンピュータ941によってアクセスされることができるいかなる他の媒体をも含むがそれらに限定されない。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、あるいは、搬送波または他のトランスポート機構などの変調データ信号内の他のデータを包含し、いかなる情報配信媒体をも含む。用語「変調データ信号」は、信号内の情報を符号化するような方法で設定または変更された1つまたは複数の特性を有する信号を含む。例として、限定としてではなく、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響、RF、赤外線および他の無線媒体などの無線媒体を含む。上記のいずれの組合せも、コンピュータ可読媒体の範囲に含まれるものとする。
【0073】
システムメモリ922は、読出し専用メモリ(ROM)923およびランダムアクセスメモリ(RAM)960などの揮発性メモリおよび/または不揮発性メモリの形態でのコンピュータ記憶媒体を含む。起動中などにコンピュータ941の中の構成要素間で情報を転送するのを支援する基本ルーチンを含む基本入出力システム924(BIOS)は、通常、ROM923に格納されている。RAM960は、通常、処理装置959によって直接アクセス可能であり、かつ/または処理装置959によって現在操作されているデータおよび/またはプログラムモジュールを含む。例として、限定としてではなく、図9は、オペレーティングシステム925、アプリケーションプログラム926、他のプログラムモジュール927、およびプログラムデータ928を示す。
【0074】
コンピュータ941はまた、他の取外し可能な/取外し不可能な、揮発性/不揮発性コンピュータ記憶媒体を含んでもよい。例としてのみ、図9は、取外し不可能な不揮発性磁気媒体から読み出しまたはそれらに書き込むハードディスクドライブ938、取外し可能な不揮発性磁気ディスク954から読み出しまたはそれらに書き込む磁気ディスクドライブ939、および、CD−ROMまたは他の光媒体などの取外し可能な不揮発性光ディスク954から読み出しまたはそれらに書き込む光ディスクドライブ940を例示する。例示的動作環境で使用されることができる他の取外し可能な/取外し不可能な、揮発性/不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体RAM、半導体ROMなどを含むがそれらに限定されない。ハードディスクドライブ938は、通常、インターフェース934などの取外し不可能なメモリインターフェースを介してシステムバス921に接続され、磁気ディスクドライブ939および光ディスクドライブ940は、通常、インターフェース935などの取外し可能なメモリインターフェースによってシステムバス921に接続される。
【0075】
上記で論じられ図9で例示されたドライブおよびそれらの関連コンピュータ記憶媒体は、コンピュータ941のために、コンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの記憶装置を提供する。図9では、例えば、ハードディスクドライブ938は、オペレーティングシステム958、アプリケーションプログラム957、他のプログラムモジュール956、およびプログラムデータ955を格納しているように例示されている。これらの構成要素は、オペレーティングシステム925、アプリケーションプログラム926、他のプログラムモジュール927、およびプログラムデータ928と同じものでも、あるいは異なるものでもよいことに留意されたい。オペレーティングシステム958、アプリケーションプログラム957、他のプログラムモジュール956、およびプログラムデータ955は、少なくともそれらがそれぞれ異なるコピーであることを例示するために、ここではそれぞれ異なる番号を与えられている。ユーザは、キーボード951、および、一般に、マウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス952などの入力装置を介してコンピュータ941にコマンドおよび情報を入力することができる。他の入力装置(図示されていない)には、マイクロホン、ジョイスティック、ゲームパッド、衛星アンテナ、スキャナなどがあり得る。これらおよび他の入力装置は、しばしば、システムバスに結合されたユーザ入力インターフェース936を介して処理装置959に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)など、他のインターフェースおよびバス構造によって接続されてもよい。モニタ942または他のタイプの表示装置も、ビデオインターフェース932などのインターフェースを介してシステムバス921に接続される。モニタに加えて、コンピュータはまた、出力周辺インターフェース933を介して接続されることができるスピーカ944およびプリンタ943など、他の周辺出力装置を含んでもよい。
【0076】
このように、冗長コールサービスを提供するシステムを開示した。開示された実施形態では、本システムは、ボイスコールのサービス全体の間中に冗長性を、とりわけ、ボイスメール録音中に冗長性を提供する。本システムはボイスメール録音以外のシナリオ中に冗長性を提供するために利用されることができることを当業者は理解するであろう。例えば、冗長コールサービスシステムは、チェックボイスメールにコールを入れるボイスメールユーザにサービスを提供するために利用されることができる。実際、プライマリサーバとセカンダリサーバとの間の主要な状態遷移を共有するための開示されたシステムおよび方法は、全てでなくてもほとんどのインタラクティブボイスレスポンス(IVR)サービスに冗長性を提供するために利用されることができる。
【0077】
本明細書に記載の様々な技法は、ハードウェアまたはソフトウェアに関連して、あるいは、適切な場合には、両方の組合せに関連して、実施されることができることを理解されたい。したがって、本明細書に記載の方法および機器、あるいはいくつかの態様またはそれらの一部分は、フロッピー(登録商標)ディスク、CD−ROM、ハードドライブ、または他のいかなる機械可読記憶媒体などの有形媒体にも包含されるプログラムコード(すなわち、命令)の形を取ることが可能であり、プログラムコードがコンピュータなどの機械にロードされ、機械によって実行された場合、機械は本発明を実施するための機器になる。プログラムコードが媒体上に格納されている場合には、プログラムコードは、問題の諸行為をひとまとめにして行う1つまたは複数の媒体上に格納されていると言える、すなわち、1つまたは複数の媒体は、諸行為を行うためのコードをまとめて含有するが、−複数の単一の媒体がある場合は−、コードのいかなる特定の部分も、いかなる特定の媒体上にも格納される必要がない。プログラマブルコンピュータ上でのプログラムコードの実行の場合は、コンピューティングデバイスは、一般に、プロセッサ、プロセッサによって読出し可能な記憶媒体(揮発性および不揮発性メモリおよび/または記憶要素を含む)、少なくとも1つの入力装置、および少なくとも1つの出力装置を含む。例えば、API、再使用可能制御装置などの使用によって、本発明に関して説明されたプロセスを実施または利用することができる1つまたは複数のプログラムは、好ましくは、コンピュータシステムと通信するために高級手続き型プログラミング言語またはオブジェクト指向プログラミング言語で実装される。しかし、プログラム(1つまたは複数)は、所望された場合は、アセンブリ言語または機械語で実装されることもできる。いずれの場合でも、言語は、コンパイル型言語でも、インタプリタ型言語でもよく、ハードウェア実装と組み合わされてもよい。
【0078】
例示的実施形態は、1つまたは複数のスタンドアロンコンピュータシステムのコンテキストで本発明の諸態様を利用することに言及している場合もあるが、本発明は、そのように限定されるものではなく、ネットワークまたは分散コンピューティング環境など、いかなるコンピューティング環境に関連してでも実施されることができる。さらに、本発明の諸態様は、複数の処理チップまたは装置で、あるいはそれら全てにわたって実施されることが可能であり、記憶装置も同様に複数の装置全てにわたって実施されることが可能である。そのような装置には、パーソナルコンピュータ、ネットワークサーバ、ハンドヘルドデバイス、スーパコンピュータ、または自動車および飛行機などの他のシステムに組み込まれたコンピュータがあり得る。
【0079】
本発明は、構造的特徴および/または方法論的行為に特有の言語で説明されてきたが、添付の特許請求の範囲で定義されている主題は、必ずしも上記で説明された特定の特徴または行為に限定されるわけではないことを理解されたい。むしろ、上記で説明された特定の特徴および行為は、特許請求の範囲を実施する例示的形態として開示されている。

【特許請求の範囲】
【請求項1】
電子メッセージをトランスポートする方法であって、
電子メッセージをプライマリメッセージングサーバ(110)で受信すること、
前記電子メッセージのシャドウコピーをシャドウメッセージングサーバ(150)で維持すること、
前記プライマリメッセージングサーバによる第3のメッセージングサーバ(130)への配信がないか前記シャドウサーバ(150)で監視すること、
前記プライマリメッセージングサーバ(110)が前記電子メッセージを前記第3のメッセージングサーバ(130)に伝達したことを識別すると、前記シャドウメッセージングサーバ(150)で前記電子メッセージの前記シャドウコピーを削除すること
を含むことを特徴とする方法。
【請求項2】
前記プライマリメッセージングサーバ(110)が前記電子メッセージを前記第3のメッセージングサーバ(130)に配信しなかったと前記シャドウメッセージングサーバ(150)で判定すること、および
前記電子メッセージを前記シャドウメッセージングサーバ(150)から前記第3のメッセージングサーバ(130)に伝達すること
をさらに含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記電子メッセージをプライマリメッセージングサーバ(110)で受信することは、電子メッセージを第1のメッセージングサーバ(150)から前記プライマリメッセージングサーバ(110)で受信することを含み、
前記電子メッセージのシャドウコピーをシャドウメッセージングサーバ(150)で維持することは、前記電子メッセージのシャドウコピーを前記第1のメッセージングサーバ(150)で維持することを含む
ことを特徴とする請求項1に記載の方法。
【請求項4】
前記プライマリメッセージングサーバ(110)がシャドウイングサービスを使用するように動作可能であることを前記第1のメッセージングサーバ(150)で識別すること、および
前記第1のメッセージングサーバ(150)がシャドウメッセージングサーバとして動作するように利用可能であることを前記第1のメッセージングサーバ(150)から前記プライマリメッセージングサーバ(110)に伝達すること
をさらに含むことを特徴とする請求項3に記載の方法。
【請求項5】
前記シャドウメッセージングサーバ(150)として動作し、前記電子メッセージのシャドウコピーを受信する第2のメッセージングサーバ(150)を、前記プライマリメッセージングサーバ(110)で識別すること、および
前記電子メッセージのコピーを前記プライマリメッセージングサーバ(110)から前記識別されたシャドウメッセージングサーバ(150)に伝達すること
をさらに含むことを特徴とする請求項1に記載の方法。
【請求項6】
前記シャドウメッセージングサーバ(150)として動作する第2のメッセージングサーバ(150)を識別することは、前記電子メッセージのコピーを受信し、前記電子メッセージを配信する第2の役割を担う複数のサーバ(150、160)を識別することを含み、
前記電子メッセージのコピーを前記プライマリメッセージングサーバ(110)から前記識別されたシャドウメッセージングサーバ(150)に伝達することをさらに含むことは、前記電子メッセージのコピーを複数のサーバ(150、160)のそれぞれに伝達することを含む
ことを特徴とする請求項5に記載の方法。
【請求項7】
前記電子メッセージのコピーを前記プライマリメッセージングサーバ(110)から前記識別されたシャドウメッセージングサーバ(150)に伝達することは、前記電子メッセージを前記プライマリメッセージングサーバ(110)で受信するのと同時に前記電子メッセージのコピーを前記識別されたシャドウメッセージングサーバ(150)に伝達することを含むことを特徴とする請求項5に記載の方法。
【請求項8】
前記電子メッセージのコピーを前記プライマリメッセージングサーバ(110)から前記識別されたシャドウメッセージングサーバ(150)に伝達することは、前記電子メッセージを前記プライマリメッセージングサーバ(110)で受信した後で前記電子メッセージのコピーを前記識別されたシャドウメッセージングサーバ(150)に伝達することを含むことを特徴とする請求項5に記載の方法。
【請求項9】
情報を格納している1つまたは複数のコンピュータ可読記憶媒体(953、954)であって、
第1のメッセージングサーバ(110)から第2のメッセージングサーバ(120)に、電子メッセージが前記第2のメッセージングサーバ(120)に伝達される予定であることを示すメッセージを伝達するためのコンピュータ可読命令、
前記第1のメッセージングサーバ(110)から前記第2のメッセージングサーバ(120)に、前記第1のメッセージングサーバ(110)が前記電子メッセージのシャドウコピーを維持することになるという指示を伝達するためのコンピュータ可読命令、
前記第1のメッセージングサーバ(110)から前記第2のメッセージングサーバ(120)に、前記電子メッセージを伝達するためのコンピュータ可読命令、
前記電子メッセージが第3のメッセージングサーバ(130)に伝達されたという通知を前記第2のメッセージングサーバ(120)から前記第1のメッセージングサーバ(110)で受信するとすぐ、前記電子メッセージを前記第1のメッセージングサーバ(110)から削除するためのコンピュータ可読命令
を備えることを特徴とする1つまたは複数のコンピュータ可読記憶媒体。
【請求項10】
前記第2のメッセージングサーバ(120)が前記電子メッセージを第3のメッセージングサーバ(130)に配信しなかったと前記第1メッセージングサーバ(110)で判定するためのコンピュータ可読命令、および
前記電子メッセージのコピーを前記第1のメッセージングサーバ(110)から前記第3のメッセージングサーバ(130)に伝達するためのコンピュータ可読命令
をさらに備えることを特徴とする請求項9に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項11】
前記第2のメッセージングサーバ(120)が前記電子メッセージを第3のメッセージングサーバ(130)に配信しなかったと前記第1のメッセージングサーバ(110)で判定することは、規定の期間に前記第2のメッセージングサーバ(120)からメッセージが1つも受信されなかったと前記第1のメッセージングサーバ(110)で判定することを含むことを特徴とする請求項10に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項12】
前記第2のメッセージングサーバ(120)が前記電子メッセージを第3のメッセージングサーバ(130)に配信しなかったと前記第1のメッセージングサーバ(110)で判定することは、前記第2のメッセージングサーバ(120)が前記第1のメッセージングサーバ(110)からの要求に応答していないことを識別することを含むことを特徴とする請求項11に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項13】
前記第2のメッセージングサーバ(120)がシャドウイングサービスを使用するように動作可能であることを前記第1のメッセージングサーバ(110)で検知するためのコンピュータ可読命令をさらに備えることを特徴とする請求項9に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項14】
電子メッセージをトランスポートするシステムであって、
電子メッセージを処理するように構成された第1のメッセージングサーバ(110)を備え、前記第1のメッセージングサーバは、
第1のプロセッサ(959)と、
電子メッセージが第1のメッセージングサーバ(110)に伝達される予定であることを示す情報を前記第1のメッセージングサーバ(110)で受信すること、
前記電子メッセージのシャドウコピーを受信する第2のメッセージングサーバ(150)を前記第1のメッセージングサーバ(110)で識別すること、
前記電子メッセージを前記第1のメッセージングサーバ(110)で受信すること、および
前記電子メッセージのコピーを前記第2のメッセージングサーバ(150)に伝達すること
を実行するための前記第1のプロセッサ上で実行されるように構成された実行可能な命令を備えるメモリ(934)と
を備えることを特徴とするシステム。
【請求項15】
前記電子メッセージのシャドウコピーを受信する第2のメッセージングサーバ(150)を識別するための前記命令は、前記電子メッセージを受信し、前記電子メッセージを配信する第2の役割を担う電子メッセージングサーバ(150)を識別するための命令を含むことを特徴とする請求項14に記載のシステム。
【請求項16】
前記電子メッセージのシャドウコピーを受信する第2のメッセージングサーバ(150)を識別するための前記命令は、前記電子メッセージを受信し、前記電子メッセージを配信する第2の役割を担う複数のメッセージングサーバ(150、120)を識別するための命令を含み、
前記電子メッセージを前記第2のメッセージングサーバ(150)に伝達することは、前記電子メッセージを前記複数のメッセージングサーバ(150、120)に伝達することを含む
ことを特徴とする請求項14に記載のシステム。
【請求項17】
前記電子メッセージのコピーを前記第2のメッセージングサーバ(150)に伝達するための前記命令は、前記電子メッセージを前記第1のメッセージングサーバ(110)で受信するのと同時に前記電子メッセージのコピーを前記第2のメッセージングサーバ(150)に伝達するための命令を含むことを特徴とする請求項14に記載のシステム。
【請求項18】
前記電子メッセージのコピーを前記第2のメッセージングサーバ(150)に伝達するための前記命令は、前記電子メッセージを前記第1のメッセージングサーバ(110)で受信した後で前記電子メッセージを前記第2のメッセージングサーバ(150)に伝達するための命令を含むことを特徴とする請求項14に記載のシステム。
【請求項19】
前記電子メッセージを前記第1のメッセージングサーバ(110)から第3のメッセージングサーバ(130)に伝達すること、
前記電子メッセージを前記第1のメッセージングサーバ(110)から除去すること、および
前記電子メッセージが前記第3のメッセージングサーバ(130)に伝達されるという通知を前記第2のメッセージングサーバ(150)に伝達すること
を実行するための命令をさらに備えることを特徴とする請求項14に記載のシステム。
【請求項20】
電子メッセージを処理するように構成された第2のメッセージングサーバ(150)をさらに備え、前記第2のメッセージングサーバは、
プロセッサ(959)と、
前記第1のメッセージングサーバ(110)が前記電子メッセージを前記第3のメッセージングサーバ(130)に配信しなかったと前記第2のメッセージングサーバ(150)で判定すること、および
前記電子メッセージを前記第2のメッセージングサーバ(150)から前記第3のメッセージングサーバ(130)に伝達すること
を実行するための前記プロセッサ(959)上で実行されるように構成された実行可能な命令を備えるメモリ(934)と
を備えることを特徴とする請求項14に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公表番号】特表2010−532637(P2010−532637A)
【公表日】平成22年10月7日(2010.10.7)
【国際特許分類】
【出願番号】特願2010−514990(P2010−514990)
【出願日】平成20年6月19日(2008.6.19)
【国際出願番号】PCT/US2008/067547
【国際公開番号】WO2009/006035
【国際公開日】平成21年1月8日(2009.1.8)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】