(57)【要約】  サーバーによって保管用にアーカイブに送信されるメッセージの調整および修復のための手法が説明される。一部の手法は、アーカイブに保管するためにサーバーによって送信されるメッセージと一致する、調整すべきメッセージを受信するステップを含んでよい。受信されたメッセージは調整用に分類でき、調整用のメッセージの分類に従って配信確認クエリをアーカイブに発行できる。配信確認クエリへの応答に基づいて、保管用にアーカイブに送信されたメッセージがアーカイブで本当に保管されたかを確実に判定することができる。他の実施形態も説明され、特許請求される。
2011526131.tif 000002
【特許請求の範囲】
【請求項１】
サーバー（１１０）によって保管用にアーカイブ（１４０）に送信されるメッセージと一致する、調整すべきメッセージを受信するステップ（６１０）と、
前記受信されたメッセージを調整用に分類するステップ（６２０）と、
調整用の前記メッセージの分類に従って配信確認クエリを前記アーカイブに発行するステップ（６３０）と、
前記サーバーから前記アーカイブに送信された前記メッセージが前記アーカイブに保管されたかを前記配信確認クエリへの応答に基づいて確認するステップ（６４０）と
を含むことを特徴とする方法。
【請求項２】
前記サーバーによって保管用に前記アーカイブに送信されるジャーナルレポートと一致するジャーナルレポートのコピーを受信するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
期待される待機時間を含む構成情報を前記アーカイブに要求する構成クエリを発行するステップを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記調整すべきメッセージを１つまたは複数の時間インターバルに基づいて分類するステップを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記時間インターバルは、前記アーカイブに関連付けられた待機時間と一致する時間インターバル、前記調整すべきメッセージのコピーがローカルキャッシュに入っている場合の時間インターバル、および遅延の問題を解決するための時間インターバルのうちの１つまたは複数を含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記調整すべきメッセージを、前記配信確認クエリへの否定応答を受信したことに基づいて分類するステップを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記配信確認クエリへの否定応答を受信した後、再試行クエリを発行するステップを含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記再試行クエリへの否定応答を受信した後、前記調整すべきメッセージを前記アーカイブに再送信するステップを含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記調整すべきメッセージを保管するステップと、
前記配信確認クエリへの肯定応答を受信した後、前記調整すべきメッセージを削除するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記配信確認クエリをＷｅｂサービスのプロトコルに従って前記アーカイブに発行することを特徴とする請求項１に記載の方法。
【請求項１１】
実行されると、システムが請求項１から１０のいずれか１つの方法を実施できるようにする命令が入っている、マシンまたはコンピューター読み取り可能記憶域メディアを含むことを特徴とする製品。
【請求項１２】
ジャーナルレポートのコピーをジャーナルエージェント（１２５）から受信するためのメッセージ受信コンポーネント（３３２）であって、前記ジャーナルレポートの前記コピーは、前記ジャーナルエージェントによって保管用にアーカイブ（１４０）に送信されるメッセージと一致する、調整すべきメッセージを含む、メッセージ受信コンポーネントと、
前記受信されたメッセージを調整用に分類する分類コンポーネント（３３４）と、
サーバー（１１０）から前記アーカイブに送信された前記メッセージが前記アーカイブに保管されたかを判定するための配信確認クエリを前記アーカイブに発行するためのクエリ発行コンポーネント（３３６）と
を含むことを特徴とする装置。
【請求項１３】
前記配信確認クエリへの応答を前記アーカイブから受信するためのクエリ応答受信コンポーネント（３３８）であって、前記クエリ発行コンポーネントは、前記配信確認クエリへの否定応答を受信した後、再試行クエリを発行する、クエリ応答受信コンポーネントと、
前記再試行クエリへの否定応答を受信した後、前記調整すべきメッセージを前記アーカイブに再送信するための修復コンポーネント（３４２）と
を含むことを特徴とする請求項１２に記載の装置。
【請求項１４】
前記ジャーナルエージェントを含むことを特徴とする請求項１２に記載の装置。
【請求項１５】
前記配信確認クエリはＷｅｂサービスのクエリを含むことを特徴とする請求項１２に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信アーカイブに対する調整および修復に関する。
【背景技術】
【０００２】
電子メール（ｅメール）は、エンドツーエンドメッセージ配信に、メッセージが複数のマシンにわたって、様々な組織およびネットワークを経由して移動でき、一時的な接続停止後も残存できるようにするストアアンドフォワード方式を提供する。この非同期方式のマイナス面は、送信側のユーザーまたは組織は、受信者がメッセージを受信したのか、いつ受信したのか、および何らかの受信後処理が正常に行われたかを正確に知る方法を有していないことである。
【０００３】
この問題は、ｅメールアーカイブの事例で特に顕著である。法規制を順守するため、または裁判所の命令により、ｅメール保持要件が課されている企業または組織は、そのようなアーカイブからｅメールを検索して、作成できる必要がある。それができない場合、相当な罰金が科され、評判が損なわれる。現在のｅメールシステムが、アーカイブに送信されたメッセージがアーカイブに正常に保存されたことを保証することができないため、これらの企業は、企業のアーカイブに加えて、冗長なバックアップの中を検索しなければならないという、かなりの費用を強いられる。
【０００４】
メッセージ生成ｅメールシステムの観点からは、アーカイブまでの経路上にデータ消失のいくつかの潜在的ポイントがある。例えば、生成ｅメールシステムまたは中間ｅメールシステムは、ソフトウェア障害またはハードウェア障害が発生することがあり、アーカイブ宛のメッセージが失われる。加えて、メッセージが受信されるアーカイブのフロントエンドｅメールシステム、またはメッセージがデータベースに保存されるアーカイブの挿入（ｉｎｊｅｃｔｉｏｎ）システムは、ソフトウェア障害またはハードウェア障害が発生することがあり、アーカイブ宛のメッセージが失われる。その結果、これらの問題および他の問題を解決するため、およびエンドツーエンド配信を保証して、トランザクションのない環境でメッセージをアーカイブするための改善が必要である。
【発明の概要】
【課題を解決するための手段】
【０００５】
この課題を解決するための手段は、選ばれた概念を簡略化された形で紹介するために記載されており、これらについては、以下の「発明を実施するための形態」でさらに詳しく説明される。この概要は、特許請求される主題の重要な特徴または本質的な特徴を特定することは意図されておらず、また同主題の範囲を限定するために使用されることも意図されていない。
【０００６】
様々な実施形態が、アーカイブでの保管用にサーバーによって送信されるメッセージの調整（ｒｅｃｏｎｃｉｌｉａｔｉｏｎ）および修復（ｒｅｍｅｄｉａｔｉｏｎ）の手法を対象にしている。一部の手法は、サーバーによって保管用にアーカイブに送信されるメッセージと一致する、調整（ｒｅｃｏｎｃｉｌｅ）すべきメッセージを受信するステップと、受信されたメッセージを調整用に分類するステップと、調整用のメッセージの分類に従って配信確認クエリをアーカイブに発行するステップと、サーバーからアーカイブに送信されたメッセージがアーカイブに保管されたかを配信確認クエリへの応答に基づいて判定するステップとを含むことができる。配信確認クエリへの否定応答の受信後、再試行クエリを発行することができる。再試行クエリへの否定応答の受信後、調整すべきメッセージをアーカイブに再送信することができる。調整すべきメッセージは、配信確認クエリへの肯定応答を受信後に確認が受信されて、その確認が削除されるまで、保管することができる。他の実施形態も説明され、特許請求される。
【０００７】
これらおよび他の特徴および利点は、以下の「発明を実施するための形態」での詳細な説明を読み、関連の図面を検討すれば明らかになろう。前述の概略の説明および以下の詳細な説明は、単に説明であり、特許請求される態様の限定ではないことを理解されたい。
【図面の簡単な説明】
【０００８】
【図１】動作環境の実施形態の図である。
【図２】コンピューティングデバイスの実施形態の図である。
【図３】調整アプリケーションの実施形態の図である。
【図４】ダイアグラムの実施形態の図である。
【図５】メッセージフローの実施形態の図である。
【図６】ロジックフローの実施形態の図である
【図７】物品の実施形態の図である。
【発明を実施するための形態】
【０００９】
様々な実施形態が、特定の動作、機能またはサービスを実行するような仕組みの物理的構造または論理的構造を含む。構造は、物理的構造、論理的構造またはその両方の組合せを有することができる。物理的構造または論理的構造は、ハードウェア要素、ソフトウェア要素またはその両方の組合せを用いて実装される。しかし、特定のハードウェア要素またはソフトウェア要素を参照する実施形態の説明は、例として意図されているのであって、限定として意図されているのではない。実際に実施形態を実施するためにハードウェア要素またはソフトウェア要素を使用する決定は、多くの外部要因、例えば、所望の計算レート、パワーレベル、熱耐性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバス速度、および他の設計上またはパフォーマンス上の制約に依存する。さらに、物理的構造または論理的構造は、電子信号または電子メッセージの形で構造間で情報を伝達するための、対応する物理的接続または論理的接続を有することができる。その接続は、情報または特定の構造用に、適宜、ワイヤード接続および／またはワイヤレス接続を有することができる。「１つの実施形態」または「一実施形態」と言及した場合、その実施形態に関連して説明される特定の特徴、構造または特性は少なくとも１つの実施形態に含まれることを意味することに留意することは価値がある。本明細書内の様々な箇所で「１つの実施形態では」または「一実施形態では」という句が出現した場合、それは、必ずしも、すべて同じ実施形態を指しているわけではない。
【００１０】
アーカイブでの保管用にサーバーによって送信されるメッセージの調整および修復の様々な手法が提供される。一部の手法は、アーカイブに保管するためにサーバーによって送信されるメッセージと一致する、調整すべきメッセージを受信するステップを含む。受信されたメッセージは調整用に分類することができ、調整用のメッセージの分類に従って配信確認クエリをアーカイブに発行することができる。配信確認クエリへの応答に基づいて、保管用にアーカイブに送信されたメッセージが実際にアーカイブに保管されたかが確実に判定することができる。追加または代替で、配信確認クエリへの否定応答の受信後、再試行クエリを発行することができる。再試行クエリへの否定応答が受信された場合、調整すべきメッセージをアーカイブに再送信することができる。調整すべきメッセージは、配信確認クエリへの肯定応答を必ず受信した後でのみ、確認が受信されて、その確認が削除されるまで、保管することができ、メッセージの可用性が保証される。
【００１１】
図１は、様々な実施形態を実施するのに適した動作環境１００のブロック図を示している。動作環境１００は、単一エンティティ環境による実装用、または複数のエンティティ分散環境による実装用に設計された要素を含んでよい。各要素は、所与の設計パラメーターセットまたは所与のパフォーマンス制約セットについて所望されるようなハードウェア要素、ソフトウェア要素またはそれらの任意の組合せとして実装できる。ハードウェア要素の例には、デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、回路素子（例えば、トランジスタ、抵抗器、キャパシター、インダクターなど）、集積回路、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：特定用途向け集積回路）、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ：プログラマブルロジックデバイス）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ：デジタル信号プロセッサ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ：フィールドプログラマブルゲートアレイ）、メモリユニット、ロジックゲート、レジスター、半導体デバイス、チップ、マイクロチップ、チップセットなどを挙げることができる。ソフトウェア要素の例には、任意のソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータープログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、インターフェイス、ソフトウェアインターフェイス、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ：アプリケーションプログラムインターフェイス）、命令セット、コンピューティングコード、コンピューターコード、コードセグメント、コンピューターコードセグメント、語、値、記号、またはそれらの任意の組合せを挙げることができる。
【００１２】
本明細書で使用された場合、用語「システム」、「サブシステム」、「コンポーネント」および「モジュール」は、ハードウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアで構成される、コンピューター関連のエンティティを指すように意図されている。例えば、コンポーネントは、プロセッサ上で実行される、プロセス、プロセッサ、ハードディスクドライブ、（光学式記憶域メディアおよび／または磁気記憶域メディアの）複数の記憶域ドライブ、オブジェクト、実行可能コード、実行のスレッド、プログラムおよび／またはコンピューターとして実装できる。例であるが、サーバー上で実行されるアプリケーションおよびサーバーの両方がコンポーネントになり得る。１つまたは複数のコンポーネントが１つのプロセスおよび／または実行のスレッド内に存在し得て、コンポーネントは１つのコンピューター上でローカルであってもよいし、および／または所与の実施態様に所望されるような２つ以上のコンピューター間で分散されてもよい。実施形態はこのコンテキストで限定されることはない。
【００１３】
図１に示された例では、動作環境１００は、他の要素の中でもとりわけ、ｅメールサーバー１１０およびアーカイブ１４０を含んでよい。図１に示された動作環境１００は、あるトポロジー（接続形態）では、限定された数のノードを有するが、動作環境１００は、代替的なトポロジーでは、所与の実施態様に所望されるような、より多いノードまたはより少ないノードを含んでよいことが理解できよう。様々な実施形態において、ｅメールサーバー１１０は、電子通信システムを介してメッセージを送信および受信するためにｅメールメッセージングシステム内に実装されてよい。アーカイブ１４０は、オンサイトまたはオフサイトのアーカイビングシステムとして、またはｅメールメッセージングシステムから電子通信システムを介して受信されるメッセージをアーカイブするためのデータ保管機能として実装されてよい。図示されているように、ｅメールサーバー１１０およびアーカイブ１４０は、ネットワーク１１８および適切なワイヤレス通信メディアまたはワイヤード通信メディアを介して通信上で結合できる。ｅメールサーバー１１０およびアーカイブ１４０は、ネットワーク１１８を介して情報を伝達し、情報の単方向または双方向の交換に関与する可能性がある、相互間の動作を調整することができる。ネットワーク１１８は、パケット交換ネットワーク、回線交換ネットワーク、またはその両方の組合せを含んでよい。ネットワーク１１８を介して伝達される情報は、様々なネットワークインターフェイスを介して送信されるデータメッセージとして実装できる。例のネットワークインターフェイスには、パラレルインターフェイス、シリアルインターフェイスおよびバスインターフェイスがある。
【００１４】
ｅメールサーバー１１０は、様々なタイプのメッセージングクライアントと通信するように動作可能であってよい。一部の実施形態では、ｅメールサーバー１１０は、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ、Ｒｅｄｍｏｎｄ、ＷａｓｈｉｎｇｔｏｎによるＭＩＣＲＯＳＯＦＴ  ＯＦＦＩＣＥ  ＯＵＴＬＯＯＫ（登録商標）アプリケーションソフトウェアなど、クライアントベースのソフトプログラムと通信するためのインターフェイスを提供することがある。また、ｅメールサーバー１１０は、限定ではないが、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ：簡易メール転送プロトコル）のクライアント、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ：ハイパーテキスト転送プロトコル）のクライアント、ＭＡＰＩ（Ｍｅｓｓａｇｉｎｇ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ：メッセージングアプリケーションプログラミングインターフェイス）のクライアント、ＰＯＰ３（Ｐｏｓｔ  Ｏｆｆｉｃｅ  Ｐｒｏｔｏｃｏｌ  ３：ポストオフィスプロトコル３）のクライアント、ＩＭＡＰまたはＩＭＡＰ４（Ｉｎｔｅｒｎｅｔ  Ｍｅｓｓａｇｅ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ：インターネットメッセージアクセスプロトコル）のクライアント、ＮＮＴＰ（Ｎｅｔｗｏｒｋ  Ｎｅｗｓ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ：ネットワークニュース転送プロトコル）のクライアント、Ｗｅｂメールのクライアントなど、様々な他のタイプのｅメールクライアントと通信するためのインターフェイスを提供することもできる。
【００１５】
ｅメールサーバー１１０は、Ｗｅｂアクセス、モバイルアクセスおよび同期化機能、ＩＩＳ（Ｉｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｉｃｅｓ：インターネット情報サービス）、ならびに多様なインターネットアクセスプロトコル、およびＨＴＴＰ通信によるＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ：リモートプロシージャーコール）を含むＨＴＴＰベースのプロトコルによる通信を許容するためのＳＭＴＰ、ＮＮＴＰ、ＩＭＡＰ４およびＰＯＰ３サービスを提供するＩＳＡＰＩ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ：インターネットサーバーアプリケーションプログラミングインターフェイス）アプリケーションを提供するように動作可能であってよい。一部の実施態様では、ｅメールサーバー１１０は、モバイルクライアントのために帯域幅を効率よく利用するために、圧縮されたＷｂＸＭＬ（Ｗｉｒｅｌｅｓｓ  Ｂｉｎａｒｙ  ＸＭＬ：ワイヤレスバイナリＸＭＬ）データとしてフォーマット化されたデータを伝達することができる。標準のインターネットプロトコルに加えて、ｅメールサーバー１１０は、会社または他の組織によって使用される場合、独自プロトコルまたは非標準のプロトコルによる通信をサポートすることもできる。
【００１６】
様々な実施形態において、ｅメールサーバー１１０および／またはアーカイブ１４０は、説明される実施形態によれば、１つまたは複数の調整および修復手法を実行することができる。一部の実施形態では、ｅメールサーバー１１０は、サーバーベースのｅメールソフトウェアプログラムを実行するサーバーコンピューティングデバイスを含んでよい。したがって、一部の実施形態では、１つまたは複数の調整および修復手法が、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ、Ｒｅｄｍｏｎｄ、ＷａｓｈｉｎｇｔｏｎによるＭＩＣＲＯＳＯＦＴ  ＥＸＣＨＡＮＧＥ  ＳＥＲＶＥＲ（登録商標）などのサーバーベースのソフトウェアプログラム内の機能として実行できる。実施形態はこのコンテキストで限定されないこと、およびｅメールサーバー１１０は、Ｗｅｂブラウザを経由してｅメールサービスへのアクセスを提供するＷｅｂベースのｅメールアプリケーションを含めて、他のタイプのアプリケーション、プログラムまたはサービスを実行できることが理解できよう。
【００１７】
一部の実施形態では、アーカイブ１４０は、１つまたは複数のサーバーアプリケーションおよび／またはＷｅｂサービスを実行するサーバーコンピューティングデバイスを含んでよい。アーカイブ１４０は、インターネットなどのコンピューターネットワークを介して、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ：ハイパーテキスト転送プロトコル）、ＨＴＴＰＳ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  ｏｖｅｒ  Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ：セキュアソケット層を介したハイパーテキスト転送プロトコル）、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ：簡易メール転送プロトコル）、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ：ファイル転送プロトコル）などを使用して通信するように設計された、プロットフォームおよび言語に依存しないフォーマットを使用して様々なＷｅｂサービスを実行することができる。したがって、一部の実施形態では、１つまたは複数の調整および修復手法が、サーバーアプリケーションおよび／またはＷｅｂサービス内の機能として実行できる。実施形態はこのコンテキストで限定されないこと、およびアーカイブ１４０は、他のタイプのオンサイトまたはオフサイトのアーカイビングシステムおよび／またはデータ保管機能によって実施できることが理解できよう。
【００１８】
一般的に、ｅメールサーバー１１０およびアーカイブ１４０は、説明される実施形態によれば、コンピューティング機能および通信機能を有する任意の適切なタイプのコンピューティングデバイスを含んでよい、またはそれによって実行されてよい。そのような機能を実装するために、ｅメールサーバー１１０およびアーカイブ１４０は、それぞれのコンピューティングシステム１２０、１２０ａおよび通信システム１３０、１３０ａを含んでよい。コンピューティングシステム１２０、１２０ａは、様々なコンピューティング要素、例えば、１つまたは複数のプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラー、周辺機器、インターフェイス、オシレータ、タイミングデバイス、ビデオカード、オーディオカード、マルチメディアＩ／Ｏ（入出力）コンポーネントなどを含んでよい。通信システム１３０、１３０ａは、様々な通信要素、例えば、送信機、受信機、送受信機、無線受信機、ネットワークインターフェイス、ベースバンドプロセッサ、アンテナ、増幅器、フィルターなどを含んでよい。
【００１９】
コンピューティングシステム１２０、１２０ａは、他の要素の中でもとりわけ、それぞれのサーバープログラム１２２、１４２を実装してよい。サーバープログラム１２２、１４２およびそれらに含まれる要素は、説明される実施形態によれば、ｅメールサーバー１１０およびアーカイブ１４０の動作をサポートする、１つまたは複数のタイプのアプリケーションプログラム、ソフトウェアコンポーネント、プログラムモジュール、および／またはプログラムデータを含んでよい、またはそれらによって実行されてよい。一部の実施態様では、サーバープログラム１２２は、１つの物理的サーバーコンピューターデバイス上に実装されてよい。あるいは、様々なサーバープログラム１２２が、地理的なデプロイメント要件を満たすため、および／または多数のユーザーをサポートする場合にパフォーマンスおよびフォールトトレランスを提供するために異なるドメインおよびサイトに配置される可能性がある複数のサーバーにまたがって実装されてもよい。
【００２０】
図１に示された例では、サーバープログラム１２２は、例えば、ｅメールサーバー１１０に対して特定のサービスおよび機能を提供するように動作可能なハブトランスポートサーバーロール１２４およびメールボックスサーバーロール１２６など、１つまたは複数のサーバーロールを実行することができる。ハブトランスポートサーバーロール１２４は、着信メッセージおよび発信メッセージを処理するように動作可能であってよく、メールボックスサーバーロール１２６は、メールボックスのデータおよびパブリックフォルダーのデータをホストするように動作可能であってよい。図示されているように、ハブトランスポートサーバーロール１２４は、ジャーナルエージェント１２５を含んでよく、メールボックスサーバーロール１２６は調整エージェント１２７を含んでよい。様々な実施形態によれば、ジャーナルエージェント１２５および調整エージェント１２７は、以下でさらに詳しく説明されるように、１つまたは複数の調整および修復手法を実行することができる。また、サーバープログラム１２２は、説明される実施形態によれば、他のサーバーロールおよび／または他のタイプのサーバーアプリケーションなど、他のサーバープログラム１２８も含んでよい。
【００２１】
図１に示された例では、サーバープログラム１４２は、例えば、アーカイブ１４０に対して特定のサービスおよび機能を提供するように動作可能なジャーナルアプリケーション１４４および調整アプリケーション１４６など、１つまたは複数のサーバーアプリケーションを実行することができる。様々な実施形態によれば、ジャーナルアプリケーション１４４および調整アプリケーション１４６は、以下でさらに詳しく説明されるように、１つまたは複数の調整および修復手法を実行するためにジャーナルエージェント１２５および調整エージェント１２７と通信することができる。また、サーバープログラム１４２は、説明される実施形態によれば、他のタイプのサーバーアプリケーションおよび／またはＷｅｂサービスなど、他のサーバープログラム１４８も含んでよい。
【００２２】
ｅメールサーバー１１０およびアーカイブ１４０は、説明される実施形態によれば、ｅメールメッセージ、ならびにメールボックスおよびフォルダー内の他のデータなどの項目を保管するためのそれぞれのデータストアを含むこともできるし、またはそのようなデータストアと通信することもできる。図１を参照すると、ｅメールサーバー１１０用のデータストアはｅメールサーバーデータベース１５０によって実装されてよく、アーカイブ１４０用のデータストアはアーカイブデータベース１６０によって実装されてよい。例示の目的で個別の要素として示されているが、一部の実施形態では、ｅメールサーバーデータベース１５０はｅメールサーバー１１０の一部を形成してもよいし、および／またはアーカイブデータベース１６０はアーカイブ１４０の一部を形成してもよいことが理解できよう。また、ｅメールサーバー１１０用およびアーカイブ１４０用のそれぞれのデータストアはｅメールサーバー１１０およびアーカイブ１４０と一緒に置かれてもよいし、または他のリモートデバイスに置かれてもよい。
【００２３】
図２は、様々な実施形態を実施するのに適したコンピューティングデバイス２００の例示的なアーキテクチャを示している。コンピューティングデバイス２００は、例えば、ｅメールサーバー１１０を表してよい。図示されているように、コンピューティングデバイス２００は、プロセッサ２０２およびシステムメモリ２０４を備えた処理システムを含む、パーソナルコンピューターまたはサーバーコンピューターの従来のコンピューティングアーキテクチャを示している。システムメモリ２０４には、他のタイプのメモリの中でもとりわけ、ＲＡＭ（ランダムアクセスメモリ）２０６およびＲＯＭ（読み取り専用メモリ）２０８を含んでよい。ＢＩＯＳ（ｂａｓｉｃ  Ｉ／Ｏ  ｓｙｓｔｅｍ：基本Ｉ／Ｏ（入出力）システム）などのＩ／Ｏシステムは、始動動作中などに、ＲＯＭ  ２０８に保管されたロジックを使用して、コンピューティングデバイス２００内の要素間で情報を転送するのを支援するためのルーチンを実行することができる。システムバス２１０は、情報転送およびデータ処理動作を容易に行うために、コンピューティングデバイス２００の要素のすべてを通信上で結合する。
【００２４】
コンピューティングデバイス２００は、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ、Ｒｅｄｍｏｎｄ、ＷａｓｈｉｎｇｔｏｎによるＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムまたは他の適切なオペレーティングシステムなどのオペレーティングシステム２１４を保管するための大容量記憶域デバイス２１２をさらに含む。また、大容量記憶域デバイス２１２は、以下でさらに詳しく説明されるように、様々なアプリケーションプログラムならびに他のプログラムモジュール２１６およびプログラムデータ２１８も保管してよい。
【００２５】
大容量記憶域デバイス２１２は、システムバス２１０に接続された大容量記憶域コントローラー（図示せず）を介してプロセッサ２０２に接続される。大容量記憶域デバイス２１２およびその関連のコンピューター読み取り可能メディアは、コンピューティングデバイス２００に不揮発性記憶域を提供する。本明細書で使用されるコンピューター読み取り可能メディアという語は、ハードディスクドライブまたはＣＤ−ＲＯＭドライブなどの大容量記憶域デバイスを指すが、当業者は、コンピューター読み取り可能メディアは、コンピューティングデバイス２００がアクセスできる任意の使用可能なメディアであってよいことが理解できよう。例であって、限定ではないが、コンピューター読み取り可能メディアは、コンピューター記憶域メディアおよび通信メディアを含んでよい。コンピューター記憶域メディアには、コンピューター読み取り可能な命令、データ構造、プログラムモジュールまたは他のデータなどの情報の保管用に任意の方法または技術で実装された揮発性および不揮発性、取り外し可能および取り外し不可のメディアがある。コンピューター記憶域メディアには、限定ではないが、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他の半導体メモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ、または他の光学式記憶域デバイス、磁気カセット、磁気テープデバイス、磁気ディスク記憶域デバイスまたは他の磁気記憶域デバイス、あるいは所望の情報を保管するために使用でき、コンピューターによってアクセス可能な、任意の他のメディアがある。
【００２６】
様々な実施形態によれば、コンピューティングデバイス２００は、ネットワーク接続された環境で、ネットワーク１１８を介したリモートコンピューターとの論理的接続を使用して動作できるが、ネットワーク１１８は、一部の実施態様では、インターネットなど、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ：伝送制御プロトコル）およびＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ：インターネットプロトコル）ネットワークであってよい。コンピューティングデバイス２００は、システムバス２１０に接続されたネットワークインターフェイス２２０（例えば、ワイヤードまたはワイヤレスネットワークインターフェイス）を介してネットワーク１１８に接続できる。ネットワーク１１８は、所望の実施形態に応じて、限定ではないが、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ：ワイドエリアネットワーク）、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ：ローカルエリアネットワーク）、および／または携帯電話ネットワークなど、任意のタイプのネットワークを含んでよいこと、およびネットワークインターフェイス２２０は、ＧＰＲＳ、ＣＤＭＡ、１ｘＲＴＴ、ＩＥＥＥ  ８０２．１１、Ｂｌｕｅｔｏｏｔｈ（登録商標）（ＰＡＮ）、および多様なネットワークおよび／またはリモートコンピューターシステムに接続するためのその他など、様々なトランスポート層をサポートできることが理解できよう。
【００２７】
コンピューティングデバイス２００は、多数の入力デバイス２２４からの入力を受信して処理するためのＩ／Ｏコントローラー２２２を含んでよい。ユーザーは、コマンドおよび情報をキーボード、およびマウス、トラックボールまたはタッチパッドなどのポインティングデバイスなどの入力デバイス２２４からコンピューティングデバイス２００に入力できる。入力デバイス２２４の他の例には、マイクロホン、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナーなどを挙げることができる。入力デバイス２２４は、システムバス２１０に結合されたＩ／Ｏコントローラー２２２を介してプロセッサ２０２に接続できるが、他のインターフェイスおよびバス構造、例えば、パラレルポート、ゲームポートまたはＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ：ユニバーサルシリアルバス）によって接続することもできる。また、Ｉ／Ｏコントローラー２２２は、様々な出力デバイス２２４、例えば、モニター、またはＩ／Ｏコントローラー２２２を介してシステムバス２１０に接続される他のタイプのディスプレイデバイス、プリンター、スピーカー、および他の周辺デバイスに出力を提供することもできる。
【００２８】
上述のように、多数のプログラムモジュールおよびデータファイルがコンピューティングデバイス２００の大容量記憶域デバイス２１２およびＲＡＭ  ２０６に保管できる。図２に示された例では、大容量記憶域デバイス２１２およびＲＡＭ  ２０６は、オペレーティングシステム２１４だけでなく、ジャーナルエージェント１２５を含むハブトランスポートサーバーロール１２４、および調整エージェント１２７を含むメールボックスサーバーロール１２６を含む１つまたは複数のサーバープログラム１２２も保管することができる。様々な実施形態によれば、調整エージェント１２７は、１つまたは複数の調整および修正手法を実行するように動作可能であってよい。一実施形態では、例えば、調整エージェント１２７は、図３を参照して説明されるように実装できる。
【００２９】
図３は、様々な実施形態を実施するのに適した調整アプリケーション３００の一実施形態を示している。図１および図２を参照すると、一部の実施態様では、調整アプリケーション３００は、ｅメールサーバー１１０に存在するサーバープログラム１２２の１つとしての調整エージェント１２７として作動してよい。また、ｅメールアプリケーション３００の１つまたは複数の部分も、コンピューティングデバイス２００のＲＡＭ  ２０６内の、またはコンピューターソフトウェア技術分野の当事者なら想到するであろう任意の他の変形形態内のアプリケーションプログラムによって実行されてよい。
【００３０】
図示されているように、ｅメールアプリケーション３００は、メッセージ記憶域３１０を含むことができる。メッセージ記憶域３１０は、例示の目的であって、限定ではないが、調整アプリケーション３００の一部として示されているが、メッセージ記憶域３１０は、所望の実施形態に応じて様々な場所にあってよいことが理解できよう。例えば、メッセージ記憶域３１０は、ｅメールサーバー１１０および／またはｅメールサーバーデータベース１５０にあってもよい。１つの非限定の例として、調整アプリケーション３００のメッセージ記憶域３１０は、コンピューティングデバイス２００のプログラムデータ２１８内で、データベースおよび／または１つまたは複数のファイルの中に入っていてもよい。別の非限定の例として、メッセージ記憶域３１０は、オペレーティングシステム２１４などのオペレーティングシステムのファイルシステム内の、ユーザーによって指定されたディレクトリ内に全部または一部が入っていてもよい。
【００３１】
図３に示された例では、メッセージ記憶域３１０は、調整を保留中の、世代０（Ｇｅｎ−０）メッセージ３１２、世代１（ｇｅｎ−１）メッセージ３１４、世代２（Ｇｅｎ−２）メッセージ３１６、および世代３（Ｇｅｎ−３）メッセージ３１８と分類できる１つまたは複数のメッセージを含む。様々な実施形態において、クエリがメッセージ分類に応じて発行できる。例えば、クエリは、調整プロセスのパフォーマンスを最適化するため、およびアーカイブ１４０に発行されるクエリの数を最小にするために、調整の世代に基づいて発行できる。
【００３２】
一部の実施形態では、調整を保留中のメッセージは、アーカイブ１４０に関連付けられた待機時間に基づいてＧｅｎ−０メッセージ３１２と分類できる。調整アプリケーション３００によって受信され、Ｇｅｎ−０メッセージ３１２と分類されるメッセージは、アーカイブ１４０に最近送信されたメッセージと一致する可能性がある。様々な実施形態によれば、保留中のＧｅｎ−０メッセージ３１２に関してクエリは発行されず、クエリは、アーカイブ１４０に関連付けられた待機時間が経過するまで遅延される。
【００３３】
特定のメッセージが調整アプリケーション３００によって受信された後の短い時間インターバルの間、その特定のメッセージのコピーがキャッシュ３２０にローカルに保管でき、キャッシュ３２０からアクセスできる。一部の実施形態では、調整を保留中のメッセージは、その特定のメッセージのコピーがキャッシュ３２０からローカルに入手できる場合、時間インターバルに基づいてＧｅｎ−１メッセージ３１４と分類できる。調整アプリケーション３００によって受信され、Ｇｅｎ−１メッセージ３１４と分類されるメッセージは、アーカイブ１４０に配信され、および／またはアーカイブ１４０によって処理されたと期待されるメッセージと一致する可能性がある。加えて、メッセージのコピーがキャッシュ３２０から入手可能な間、Ｉ／０の節約が実現できる。様々な実施態様において、Ｇｅｎ−１メッセージ３１４に関して配信確認クエリが送信され、キャッシュ３２０の有効期間中にほとんどすべてのメッセージを処理しようと試みられる。
【００３４】
配信確認クエリへの肯定応答が特定のメッセージに関して受信されると、調整アプリケーション３００は、そのメッセージがアーカイブされたことを確認し、そのメッセージをメッセージ記憶域３１０から削除してよい。調整アプリケーション３００が特定のメッセージに関して否定応答を受信すると、その未確認のメッセージがアーカイブされたことが確認できるまで、その未確認のメッセージはメッセージ記憶域３１０内で維持され、可用性が保証される。
【００３５】
一部の実施形態では、調整を保留中のメッセージは、そのようなメッセージのアーカイブの確認の失敗に基づいて分類できる。特定のメッセージに関して否定応答が受信されると、調整アプリケーション３００は、そのメッセージをＧｅｎ−２メッセージ３１６と分類してよい。メッセージは、メッセージの遅延を解決するために必要な時間に基づいて、Ｇｅｎ−２メッセージ３１６と分類されたままでよい。調整アプリケーション３００によってＧｅｎ−２メッセージ３１６と分類される保留中メッセージは、遅延の問題が発生中の未確認のメッセージと一致する可能性がある。様々な実施形態によれば、Ｇｅｎ−２メッセージ３１６に関してクエリは発行されず、メールの遅延が解決できるように遅延される。
【００３６】
調整アプリケーション３００によってＧｅｎ−３メッセージ３１８と分類される保留中メッセージは、今は解決できる可能性のある遅延問題を有していた未確認のメッセージと一致する可能性がある。調整アプリケーション３００は、Ｇｅｎ−３メッセージ３１８の１つまたは複数に関して再試行クエリを発行することができる。特定のメッセージに関して肯定応答が受信されると、調整アプリケーション３００は、前に未確認だったメッセージがアーカイブされ、そのメッセージをメッセージ記憶域３１０から削除してよいことを確認できる。再試行クエリに関して否定応答が受信されると、その未確認のメッセージがアーカイブされたことが確認できるまで、その未確認のメッセージはメッセージ記憶域３１０内に残存し、可用性が保証される。
【００３７】
１つまたは複数のＧｅｎ−３メッセージ３１８が確認できない場合、調整エージェント１２７は、Ｇｅｎ−３メッセージ３１８をアーカイブ１４０に再送信することにより、修復を行うことができる。特定のメッセージがアーカイブされたことが確認されるまで、その未確認のメッセージはメッセージ記憶域３１０に残存し、その可用性が保証される。調整アプリケーション３００は未確認のＧｅｎ−３メッセージ３１８をアーカイブ１４０に再送信でき、各未確認のメッセージのコピーをメッセージ記憶域３１０に保存しておくことができる。特定の未確認のメッセージがアーカイブ１４０に再送信された後、調整プロセスは、その特定のメッセージがアーカイブされたことが確認されるまで、再び開始できる。特定のメッセージが調整できない場合でも、メッセージがメッセージ記憶域３１０内に残存して、その可用性が保証されることが理解できるであろう。
【００３８】
図示されているように、ｅメールアプリケーション３００は、本明細書で説明される調整および修復手法の一部または全部の実行を担当できる調整および修復ロジック３３０を含んでよい。図３に示された例では、調整および修復ロジック３３０は、調整すべきメッセージを受信するロジック３３２、調整を保留中のメッセージを分類するロジック３３４、アーカイブクエリを発行するロジック３３６、アーカイブされたメッセージの確認のためのロジック３３８、確認されたメッセージを削除するロジック３４０、および未確認のメッセージの修復のためのロジック３４２を含む。
【００３９】
一部の実施態様では、調整および修復ロジック３３０は、ｅメールサーバー１１０上の調整エージェント１２７の一部として調整アプリケーション３００内に存在してよい。しかし、調整および修復ロジック３３０は、説明される実施形態によれば、代替または追加で、１つまたは複数のタイプのコンピューター読み取り可能記憶域メディア上の様々な場所に保管されるコンピューター実行可能な命令として表す（ｅｍｂｏｄｙ）ことができる。
【００４０】
図３に示された例は、特定のロジックセットを含んでいるが、調整および修復ロジック３３０は、一般的な機能の例示的実施態様を提供していることが理解できよう。ロジックのシーケンスは、特に断りがなければ、必ずしも、提示された順に実行される必要はないことを理解されたい。加えて、調整および修復ロジック３３０は、特定のシーケンスのステップを実行するように説明されることがあるが、代替的実施形態によれば、他のシーケンスのステップも実行できる。その上、調整および修復ロジック３３０によって実行される一部の個別のステップは、その個別のステップに適した様々なシーケンスで実行できる複数のサブステップを含んでよい。さらに、特定の実施態様に応じて、調整および修復ロジック３３０によって追加ステップが実行されてもよいし、いくつかのステップが省略されてもよい。
【００４１】
図４は、様々な実施形態を実施するのに適した調整の世代を示すダイアグラム４００の一実施形態を示している。図１〜図３を参照すると、一部の実施態様では、調整を保留しているメッセージは、調整アプリケーション３００によって調整の世代に分類でき、調整アプリケーション３００は、ｅメールサーバー１１０に存在する調整エージェント１２７によって実施できる。しかし、実施形態はそのような実施態様に限定されない。さらに、用語「分類（ｃａｔｅｇｏｒｉｚｅ）」または「世代（ｇｅｎｅｒａｔｉｏｎ）」（およびそれらの派生語）は、説明される実施形態によれば、いずれか適切な手法、またはメッセージのグループを指す場合があることが理解できよう。一部のオペレーティングシステムまたは一部のアプリケーションは、メッセージの区分け（ｃｌａｓｓｉｆｉｃａｔｉｏｎ）またはメッセージのグループを指す場合、用語「分類」または「世代」を使用しない場合があるが、そのようなシナリオも、説明される実施形態によってカバーされるように意図されている。
【００４２】
図示されているように、調整を保留中のメッセージは、対応する時間インターバル（Ｔ０〜Ｔ３）に応じて、世代０（Ｇｅｎ−０）、世代１（Ｇｅｎ−１）、世代２（Ｇｅｎ−２）、および世代３（Ｇｅｎ−３）のメッセージと分類できる。この例では、メッセージは、メッセージに関連付けられた時間が時間インターバルＴ０内の場合、Ｇｅｎ−０メッセージとして、時間が時間インターバルＴ１内の場合、Ｇｅｎ−１メッセージとして、時間が時間インターバルＴ２内の場合、Ｇｅｎ−２メッセージとして、時間がＴ３の間の場合、Ｇｅｎ−３メッセージとして区分けできる。一部の実施形態は時間インターバル（Ｔ０〜Ｔ３）に関連付けられた特定の例示的値を説明することがあるが、他の適切な値も使用できることを理解されたい。また、説明される実施形態によれば、メッセージは他の方法で分類できることも理解できよう。
【００４３】
様々な実施態様において、特定のメッセージに関連付けられる時間は、その特定のメッセージを含むジャーナルレポートのコピーが受信された以降に経過した時間の長さと一致する可能性がある。例えば、特定のメッセージに関連付けられる時間は、その特定のメッセージが入ったジャーナルレポートのコピーが調整エージェント１２７によって受信された時、および／またはその特定のメッセージがメッセージ記憶域３１０に保管された時であってよい。他の実施形態では、メッセージに関連付けられる時間は、メッセージがアーカイブ１４０に送信された時間に基づいてよい。その時間は、ジャーナルレポートのコピーに含むことができる。
【００４４】
特定のメッセージがジャーナルレポートのコピーで調整エージェント１２７によって受信された後、オリジナルのジャーナルレポートがアーカイブ１４０に配信されて、および／またはアーカイブ１４０によって処理されるために短い時間インターバルが必要な場合がある。したがって、一部の実施形態では、調整を保留中のメッセージは、アーカイブ１４０に関連付けられた配信待機時間および／または処理待機時間などの待機時間に基づいて分類できる。
【００４５】
図４に示された例では、メッセージは、そのメッセージに関連付けられた時間が時間インターバルＴ０内の場合、Ｇｅｎ−０メッセージと分類できる。図示されているように、時間インターバルＴ０の長さは、オリジナルのジャーナルレポートがアーカイブ１４０に配信されるための、期待されるＳＬＡ（ｌｅｖｅｌ  ａｇｒｅｅｍｅｎｔ：レベルアグリーメント）、またはΔＳＬＡ（ｌａｔｅｎｃｙ：待機時間）と一致する可能性がある。一般的に、時間インターバルΔＳＬＡは、比較的短い時間、例えば、約５分である。
【００４６】
様々な実施形態によれば、時間インターバルΔＳＬＡは、アーカイブ１４０に送信されるメッセージの配信待機時間および／または処理待機時間に基づいてよい。一部の実施形態では、時間インターバルΔＳＬＡは、ほとんどのジャーナルレポートがアーカイブ１４０に配信されるために要される、想定または観察された時間の長さであってよい。また、時間インターバルΔＳＬＡは、アーカイブ１４０が契約しているサービスのレベルおよび／またはパフォーマンスのための時間を指定するベンダーＳＬＡによって定義されてよい。場合によっては、時間インターバルΔＳＬＡは、アーカイブ１４０によって提供される情報に基づいてもよい。例えば、一部の実施態様では、調整エージェント１２７は、期待されるＳＬＡまたはメッセージを処理するための待機時間などの特定の構成情報を入手するためにアーカイブ１４０にクエリすることができる。
【００４７】
図示されているように、時間インターバルＴ０はΔＳＬＡと一致してよく、ΔＳＬＡが経過した後で終了してよい。様々な実施態様において、特定のメッセージは、時間インターバルＴ０の間で、メッセージに関連付けられた時間から、例えば、その特定のメッセージが入ったジャーナルレポートのコピーが調整エージェント１２７によって受信された時、および／またはそのメッセージがメッセージ記憶域３１０に保管された時からΔＳＬＡが経過するまで、Ｇｅｎ−０メッセージと分類できる。したがって、調整エージェント１２７によって受信され、Ｇｅｎ−０と分類されるメッセージは、アーカイブ１４０に最近送信されたメッセージと一致する可能性がある。
【００４８】
特定のメッセージが調整エージェント１２７によって受信された後の短い時間インターバルの間、調整すべき、そのメッセージのコピーがキャッシュ３２０にローカルに保管でき、キャッシュ３２０からアクセスできる。したがって、一部の実施形態では、調整を保留中のメッセージは、この時間インターバル、キャッシュ３２０に関連付けられたキャッシュ有効期間（ΔＣａｃｈｅ）に基づいて分類できる。一般的に、キャッシュ有効期間ΔＣａｃｈｅは、期待される待機時間ΔＳＬＡより長くなるであろうし、場合によっては、長くなる必要がある。一部の実施形態では、キャッシュ有効期間ΔＣａｃｈｅは、約１０分であってよい。
【００４９】
キャッシュ有効期間ΔＣａｃｈｅは、一般的に、ＲＡＭ  ２０６など、システム上の使用可能なＲＡＭに正比例して変化する。例えば、キャッシュ有効期間ΔＣａｃｈｅが１０分のｅメールサーバー１１０では、キャッシュ有効期間ΔＣａｃｈｅは、通常、ＲＡＭを２倍にすれば２倍になる。したがって、ΔＣａｃｈｅ時間インターバルは、通常、他の時間インターバルのほとんど、例えば、時間インターバルΔＳＬＡなどより、はるかに変わりやすい。時間インターバルΔＳＬＡは、約５分の傾向があり、変化するのは比較的困難である。ＲＡＭと線形の関係があるため、キャッシュ有効期間ΔＣａｃｈｅは、調整エージェント１２７を実行するサーバー（複数可）にＲＡＭを追加することにより、容易に増やすことができる。これにより、キャッシュ有効期間ΔＣａｃｈｅは、必要な場合には、ＳＬＡ時間インターバルを楽に超えることができ、Ｉ／Ｏを節約することができる。
【００５０】
図４に示された例では、メッセージは、メッセージに関連付けられた時間が時間インターバルＴ１内の場合、Ｇｅｎ−１メッセージとして区分けできる。図示されているように、時間インターバルＴ１の長さは、ΔＳＬＡの有効期限切れ後で、キャッシュ有効期間ΔＣａｃｈｅの有効期限切れ前の時間ウィンドウと一致する可能性がある。様々な実施態様において、特定のメッセージは、時間インターバルＴ１の間で、メッセージに関連付けられた時間から、例えば、その特定のメッセージが入ったジャーナルレポートのコピーが調整エージェント１２７によって受信された時、および／またはそのメッセージがメッセージ記憶域３１０に保管された時からキャッシュ有効期間ΔＣａｃｈｅが経過するまで、Ｇｅｎ−１メッセージと分類できる。したがって、調整エージェント１２７によって受信され、Ｇｅｎ−１と分類されるメッセージは、アーカイブ１４０に配信され、および／またはアーカイブ１４０によって処理されたと期待されるメッセージと一致する可能性がある。
【００５１】
様々な実施形態において、クエリがメッセージの分類に応じて発行できる。例えば、クエリは、調整プロセスのパフォーマンスを最適化するため、およびアーカイブ１４０に発行されるクエリの数を最小にするために、調整の世代に基づいて発行できる。
【００５２】
調整エージェント１２７によって受信され、Ｇｅｎ−０と分類されるメッセージは、アーカイブ１４０に最近送信されたメッセージと一致する可能性がある。様々な実施形態によれば、Ｇｅｎ−０と分類された保留中のメッセージに関して調整エージェント１２７はクエリを発行しない。例えば、ΔＳＬＡが経過する前にジャーナルレポートの処置に関するクエリがアーカイブ１４０に送信された場合、結果は、おそらく、否定応答（Ｎａｋ）になるであろう。したがって、Ｔ０の間にＧｅｎ−０メッセージに関してクエリの発行は行われず、クエリの発行は、ΔＳＬＡの有効期限切れまで遅延されてもよい。
【００５３】
調整エージェント１２７によって受信され、Ｇｅｎ−１と分類されるメッセージは、アーカイブ１４０に保管されたと期待されるメッセージと一致する可能性がある。加えて、メッセージのコピーがキャッシュ３２０から入手できる場合、Ｉ／Ｏの節約が実現できる。しかし、キャッシュ有効期間（ΔＣａｃｈｅ）の有効期限切れ後、メッセージのコピーはキャッシュ３２０から削除されてよく、Ｉ／Ｏの節約は、もはや不可能になる。様々な実施形態において、最初のクエリは、Ｇｅｎ−１と分類された、保留中のメッセージに関して送信される。そのような実施形態では、調整エージェント１２７は、時間インターバルＴ１の間、ほとんどすべてのメッセージを処理しようと試みてよい。時間インターバルＴ１は、キャッシュ有効期間ΔＣａｃｈｅに基づき、その有効期限切れまで続いてよい。したがって、調整エージェント１２７は、アーカイブ１４０に保管されたと期待されるメッセージに関してクエリを発行し、メッセージをキャッシュ３２０からアクセスすることによりＩ／Ｏの節約を実現できるので、調整プロセスのパフォーマンスは最適化できる。
【００５４】
時間インターバルＴ１の間、調整エージェント１２７は、アーカイブ１４０の調整アプリケーション１４６に連絡して、１つまたは複数のＧｅｎ−１メッセージのメッセージＩＤを含む最初のクエリを発行することができる。最初のクエリは調整アプリケーション１４６を介してアーカイブ１４０によって受信でき、クエリ内で識別されたメッセージのそれぞれがアーカイブ１４０によって受信され、完全に保管されたかの判定を行うことができる。クエリ内で識別されたメッセージのすべてが完全に保管されたと判定した後、アーカイブ１４０は、調整アプリケーション１４６を介して、各メッセージが保管されたことを表す肯定応答（Ａｃｋ）を応答することができる。特定のメッセージに関して肯定応答が受信されると、調整エージェント１２７は、メッセージがアーカイブされたことを確認し、そのメッセージをローカルのメッセージ記憶域３１０から削除することができる。
【００５５】
しかし、場合によっては、クエリ内で識別されたメッセージの１つまたは複数がアーカイブ１４０によって保管されていないと判定されることがある。例えば、アーカイブ１４０は、クエリが受信された時点で特定のメッセージを受信していないことがあり得る。そのような場合には、アーカイブ１４０は、調整アプリケーション１４６を介して、保管されていないメッセージを識別する否定応答（Ｎａｋ）を応答することができる。調整エージェント１２７によって発行される最初の配信確認クエリは、アーカイブ１４０に保管されたと期待されるメッセージに関してであるため、否定応答を受信することは、典型的なメッセージ配信および処理の遅延、またはより深刻な問題を表している可能性がある。調整エージェント１２７が特定のメッセージに関してアーカイブ１４０から否定応答を受信すると、その未確認のメッセージがアーカイブされたことが確認できるまで、その未確認のメッセージはメッセージ記憶域３１０内で維持され、可用性が保証される。
【００５６】
特定のメッセージに関して否定応答が受信されると、調整エージェント１２７は、そのメッセージをＧｅｎ−２と分類してよい。したがって、一部の実施形態では、調整を保留中のメッセージは、そのようなメッセージのアーカイビングの確認の失敗に基づいて分類することができる。メッセージのアーカイビングが確認できない場合、典型的なメッセージ配信および処理の遅延が発生していて、遅延が解決できるための追加の時間が必要である場合の可能性がある。
【００５７】
図４に示された例では、メッセージは、メッセージに関連付けられた時間が時間インターバルＴ２内の場合、Ｇｅｎ−２メッセージと分類できる。図示されているように、時間インターバルＴ２の長さは、ΔｌｓｓｕｅＲｅｓｏｌｕｔｉｏｎ（問題解決ＳＬＡ）時間インターバルと一致する可能性がある。様々な実施形態によれば、時間インターバルΔｌｓｓｕｅＲｅｓｏｌｕｔｉｏｎは、メッセージの遅延を解決するために必要な時間に基づいてよい。例えば、時間インターバルΔｌｓｓｕｅＲｅｓｏｌｕｔｉｏｎは、ほとんどのメッセージの遅延の問題が、通常のコースで自動訂正によって、および／または遅延の原因になっている問題を修正するための手動介入によって解決されるために要される、想定または観察された時間の長さであってよい。一般的に、時間インターバルΔｌｓｓｕｅＲｅｓｏｌｕｔｉｏｎは、比較的、より長い時間、例えば、約５時間である。
【００５８】
調整を保留中のメッセージは、メッセージの遅延を解決するための時間インターバルに基づいて分類できる。理論上、Ｇｅｎ−２またはＧｅｎ−３としてのメッセージの分類は、稀な発生であることが理解できよう。様々な実施態様において、特定のメッセージは、時間インターバルＴ２の間で、時間インターバルΔｌｓｓｕｅＲｅｓｏｌｕｔｉｏｎが経過するまで、Ｇｅｎ−２メッセージと分類でき、その後、Ｇｅｎ−３と分類できる。例えば、特定の未確認のメッセージは、その特定の未確認のメッセージが入ったジャーナルレポートのコピーが調整エージェント１２７によって受信された時から、および／またはその未確認のメッセージがメッセージ記憶域３１０に最初に保管された時から時間インターバル（ΔＣａｃｈｅ＋ΔｌｓｓｕｅＲｅｓｏｌｕｔｉｏｎ）が経過するまで、Ｇｅｎ−２と分類できる。あるいは、特定の未確認のメッセージは、その特定の未確認のメッセージに関する最初の配信確認クエリが送信された時から時間インターバルΔｌｓｓｕｅＲｅｓｏｌｕｔｉｏｎが経過するまで、Ｇｅｎ−２と分類できる。
【００５９】
調整エージェント１２７によってＧｅｎ−２と分類される保留中メッセージは、遅延の問題が発生中の未確認のメッセージと一致する可能性がある。様々な実施形態によれば、Ｇｅｎ−２と分類された保留中メッセージに関して調整エージェント１２７によってクエリは発行されない。例えば、ΔｌｓｓｕｅＲｅｓｏｌｕｔｉｏｎが経過する前にジャーナルレポートの処置に関する再試行クエリが送信されると、そのクエリは、おそらく、もう１つの否定応答（Ｎａｋ）が応答されるという結果になるだろう。したがって、Ｔ２の間にＧｅｎ−２メッセージに関してクエリの発行は行われず、クエリの発行は、ΔｌｓｓｕｅＲｅｓｏｌｕｔｉｏｎの有効期限切れまで遅延される。
【００６０】
様々な実施形態において、Ｇｅｎ−３メッセージと分類されるメッセージは、ＴＯ＋Ｔ１＋Ｔ２より古いメッセージを含んでよい。一部の実施形態では、例えば、Ｇｅｎ−３と分類されるメッセージは、現時点より前の時間インターバル（ΔＣａｃｈｅ＋ΔｌｓｓｕｅＲｅｓｏｌｕｔｉｏｎ）の前に送信されたすべてのメッセージにわたる。調整エージェント１２７によってＧｅｎ−３と分類される保留中メッセージは、この時点で解決される可能性のある遅延の問題があった未確認のメッセージと一致する可能性がある。
【００６１】
メールの遅延が解決されるように時間インターバルΔｌｓｓｕｅＲｅｓｏｌｕｔｉｏｎが経過するのを許容した後、調整エージェント１２７は、Ｇｅｎ−３と分類された１つまたは複数の未確認のメッセージに関して再試行クエリを発行することができる。時間インターバルＴ３の間、例えば、調整エージェント１２７は、アーカイブ１４０の調整アプリケーション１４６に連絡して、１つまたは複数のＧｅｎ−３メッセージのメッセージＩＤを含む再試行クエリを発行することができる。一部の実施形態では、調整エージェント１２７は、保留中のＧｅｎ−３メッセージの一部または全部に関して再試行クエリを定期的に発行することができる。例えば、調整エージェント１２７はアーカイブ１４０の調整アプリケーション１４６に２４時間ごとに連絡して、現時点より前の時間インターバル（ΔＣａｃｈｅ＋ΔｌｓｓｕｅＲｅｓｏｌｕｔｉｏｎ）の前に既に送信されていたすべてのＧｅｎ−３メッセージに関するすべてのメッセージＩＤを含む再試行クエリを発行することができる。
【００６２】
再試行クエリは調整アプリケーション１４６を介してアーカイブ１４０によって受信でき、再試行クエリ内で識別されたメッセージのそれぞれが今はアーカイブ１４０によって受信され、完全に保管されたかの判定を行うことができる。再試行クエリ内で識別されたＧｅｎ−３メッセージのすべてが完全に保管されたと判定されると、アーカイブ１４０は、調整アプリケーション１４６を介して、各メッセージが保管されたことを表す肯定応答（Ａｃｋ）を応答することができる。特定のメッセージに関して肯定応答が受信されると、調整エージェント１２７は、以前は未確認のメッセージがアーカイブされたことを確認し、そのメッセージをローカルのメッセージ記憶域３１０から削除することができる。
【００６３】
しかし、再試行クエリ内で識別されたメッセージの１つまたは複数が保管されていないと判定された場合、アーカイブ１４０は、調整アプリケーション１４６を介して、保管されていないメッセージを識別する否定応答（Ｎａｋ）を応答することができる。調整エージェント１２７が特定のメッセージに関してアーカイブ１４０から否定応答を受信すると、その未確認のメッセージがアーカイブされたことが確認できるまで、その未確認のメッセージはメッセージ記憶域３１０内に残存し、可用性が保証される。
【００６４】
一部の実施形態では、再試行クエリに対する否定応答がＧｅｎ−３メッセージに関して受信されると、調整エージェント１２７は、最大待機時間しきい値に達したかを判定できる。最大待機時間しきい値に達していない場合、調整は、アーカイブ１４０の調整アプリケーション１４６に定期的に連絡して、最大待機時間しきい値に達するまで、その未確認のメッセージに関してさらなる再試行クエリを発行することができる。
【００６５】
他の実施形態では、再試行クエリに対する否定応答がＧｅｎ−３メッセージに関して受信されると、調整エージェント１２７は、再試行の試みの最大数に達したかを判定できる。再試行の試みの最大数に達していない場合、調整は、アーカイブ１４０の調整アプリケーション１４６に定期的に連絡して、再試行の試みの最大数に達するまで、その未確認のメッセージに関してさらなる再試行クエリを発行することができる。
【００６６】
メッセージが確認できない場合、調整エージェント１２７は、その未確認のメッセージをアーカイブ１４０に再送信することにより、未確認のメッセージの修復を行うことができる。一部の実施形態では、調整エージェント１２７は、最大待機時間または再試行の試みの最大数に達した場合、その未確認のメッセージの修復を行うことができる。他の実施形態では、最大待機時間または再試行の試みの最大数がないことがあり、調整エージェント１２７は、１回の再試行の試みが失敗すると、修復を開始することがある。例えば、Ｇｅｎ−３メッセージに関する１回目の再試行の試みが失敗した場合、調整エージェント１２７は、アーカイブ１４０から否定応答を受信すると直ちにメッセージの修復を開始することができる。
【００６７】
特定のメッセージがアーカイブされたことが確認されるまで、その未確認のメッセージはメッセージ記憶域３１０内に残存し、可用性が保証される。様々な実施形態によれば、調整エージェント１２７は、未確認のメッセージをアーカイブ１４０に再送信することができ、その未確認のメッセージのコピーをメッセージ記憶域３１０内に保持することができる。未確認のメッセージがアーカイブ１４０に再送信された後、その特定のメッセージがアーカイブされたことが確認されるまで、調整プロセスは再び開始できる。
【００６８】
特定のメッセージが数回の再送信の試みの後でも調整できない場合、介入が必要になることがある。様々な実施形態によれば、特定の回数の再送信の試みの失敗など、修復が失敗すると、調整エージェント１２７は警告を生成して、送信することができる。例えば、調整が数回の再送信の試みの後で失敗すると、生成中のｅメールシステムの管理者に、その問題を知らせ、問題を解決するために何らかの手動のプロセスが必要であることを知らせる警告を送信することができる。特定のメッセージが調整できない場合でも、そのメッセージはメッセージ記憶域３１０内に残存し、可用性が保証されることが理解できよう。
【００６９】
図５は、様々な実施形態を実施するのに適したメッセージフロー５００の一実施形態を示している。図示されているように、メッセージフロー５００は、ｅメールサーバー１１０とアーカイブ１４０の間のメッセージ５０１〜５０９の交換に関与できる。一部の実施態様では、メッセージ５０１〜５０９は、上述のように、ジャーナルエージェント１２５、調整エージェント１２７、ジャーナルアプリケーション１４４、および調整アプリケーション１４６によって送信および受信できる。しかし、実施形態はそのような実施態様に限定されない。さらに、図５に示された例は特定のメッセージ・セットを含んでいるが、メッセージフロー５００は、一般的な機能の例示的な実施態様を示していることが理解できよう。代替的または追加のメッセージが含まれてよいこと、および特定の実施態様に応じて一部のメッセージは省略できることを理解されたい。
【００７０】
図示されているように、ｅメールサーバー１１０は、ジャーナルエージェント１２５を介して、ジャーナルレポート５０１をアーカイブ１４０に送信する。様々な実施態様において、ジャーナルレポート５０１は、ジャーナリング条件のセットに基づいて作成できる。例えば、ｅメールメッセージがｅメールサーバー１１０によって受信者に送信される場合、ジャーナルエージェント１２５は、そのｅメールメッセージがジャーナリングの条件を満たしているかを判定できる。条件が満たされていて、ジャーナリングが適用される場合、ジャーナルエージェント１２５は、ｅメールメッセージをジャーナルレポート５０１としてパッケージ化する。
【００７１】
ジャーナルレポート５０１は、例えば、アーカイブ１４０用のジャーナリング条件、およびメッセージのメッセージＩＤ、受信者の識別名、およびメッセージの他のトランスポートデータを含むメタデータを満たしたｅメールメッセージのコピーを含んでよい。ｅメールサーバー１１０は、ｅメールメッセージを受信者に送信し、ジャーナルレポート５０１をジャーナルエージェント１２５を介してアーカイブ１４０に送信する。ジャーナルレポート５０１は、アーカイブ１４０に、例えば、ＳＭＴＰによるｅメールで送信できる。
【００７２】
様々な実施形態によれば、ジャーナルレポート５０１が作成されると、ジャーナルエージェント１２５は、ローカルメールボックス、またはメッセージ記憶域３１０などの保留エリアへの保管用にジャーナルレポートのコピー５０２も調整エージェント１２７に送信する。ジャーナルレポートのコピー５０２は、調整すべきメッセージを含み、そのメッセージは、受信者に送信され、アーカイブ１４０に送信される同じメッセージのコピーで構成されてよい。ジャーナルレポートのコピー５０２は、メッセージのメッセージＩＤ、受信者の識別名、およびメッセージの他のトランスポートデータを含むメタデータも含んでよい。
【００７３】
上述のように、一部の実施態様では、保留エリアに保管された調整を保留中のメッセージは複数の調整の世代に分類できる。様々な実施形態によれば、調整を保留中のメッセージは、調整すべきメッセージのコピーがキャッシュ３２０からローカルに入手できる場合、アーカイブ１４０に関連付けられた待機時間、メッセージのアーカイビングの確認の失敗、メッセージの遅延を解決するための時間インターバルに基づいて、または他の方法で分類できる。そのような実施態様では、調整プロセスのパフォーマンスを最適化し、アーカイブ１４０に発行されるクエリの数を最小にするために、メッセージの分類に応じてクエリが発行できる。
【００７４】
図５に示された例では、調整エージェント１２７は、アーカイブ１４０の調整アプリケーション１４６に連絡して、構成クエリ５０３を送信することができる。様々な実施態様において、構成クエリ５０３は、期待されるＳＬＡまたはメッセージを処理するための待機時間などの特定の構成情報をアーカイブ１４０に要求するＷｅｂサービスクエリを含んでよい。構成クエリ５０３は、調整アプリケーション１４６を介してアーカイブ１４０で受信できる。アーカイブ１４０は、構成クエリ５０３に対して、調整アプリケーション１４６を介して、要求された構成情報を含む構成応答５０４を応答する。
【００７５】
図示されているように、ｅメールサーバー１１０は調整エージェント１２７を介して１つまたは複数のクエリを調整アプリケーション１４６に発行し、アーカイブ１４０での特定のメッセージの着信および保管を保証することができる。様々な実施形態において、調整エージェント１２７は、アーカイブ１４０に連絡し、アーカイブ１４０に送信されたメッセージが完全に保管されたかを問い合わせ、アーカイブ１４０でのメッセージの保管を確認するための非同期の調整プロセスを実行することができる。アーカイブ１４０が所与のメッセージに関する保管を確認できない場合、調整エージェント１２７は、アーカイブ１４０に再度問い合わせるための一連のステップを、後刻、実行することができる。アーカイブ１４０が保管をどうしても確認しない場合、調整エージェント１２７はメッセージのローカルコピーを維持し、そのコピーが、表示、印刷、保存などに使用できる。
【００７６】
図５に示された例では、調整エージェント１２７はアーカイブ１４０の調整アプリケーション１４６に連絡して、配信確認クエリ５０５を送信することができる。様々な実施態様において、配信確認クエリ５０５は、ΔＳＬＡの有効期限切れ後の時間インターバルＴ１の間に送信できる。配信確認クエリ５０５は、例えば、１つまたは複数のＧｅｎ−１メッセージのメッセージＩＤを含むことができる。調整エージェント１２７によって受信され、Ｇｅｎ−１と分類されるメッセージは、アーカイブ１４０に保管されたと期待されるメッセージと一致する可能性がある。加えて、メッセージのコピーがキャッシュ３２０から入手でき、Ｉ／Ｏの節約が実現できる。
【００７７】
配信確認クエリ５０５は調整アプリケーション１４６を介してアーカイブ１４０によって受信でき、配信確認クエリ５０５内で識別されたメッセージのそれぞれがアーカイブ１４０によって受信され、完全に保管されたかの判定を行うことができる。その判定に基づいて、アーカイブ１４０は、配信確認クエリ５０５に対して、調整アプリケーション１４６を介して配信確認クエリ応答５０６を応答することができる。様々な実施態様において、配信確認クエリ応答５０６は、時間インターバルＴ１の間に送信でき、１つまたは複数のＧｅｎ−１メッセージのメッセージＩＤを含むことができる。
【００７８】
配信確認クエリ５０５内で識別されたメッセージのすべてが完全に保管されたと判定された場合、アーカイブ１４０は、調整アプリケーション１４６を介して、各メッセージが保管されたことを表す肯定応答（Ａｃｋ）を含む配信確認クエリ応答５０６を応答することができる。配信確認クエリ応答５０６が肯定応答を含んでいる場合、調整エージェント１２７は、メッセージがアーカイブされたことを確認し、そのメッセージをローカルのメッセージ記憶域３１０から削除することができる。
【００７９】
配信確認クエリ５０５内で識別されたメッセージの１つまたは複数がアーカイブ１４０によって保管されていないと判定された場合、アーカイブ１４０は、調整アプリケーション１４６を介して、保管されていないメッセージを識別する否定応答（Ｎａｋ）を含む配信確認クエリ応答５０６を応答することができる。調整エージェント１２７が否定応答を含む配信確認クエリ応答５０６を受信すると、その未確認のメッセージがアーカイブされたことが確認できるまで、その未確認のメッセージはメッセージ記憶域３１０内で維持され、可用性が保証される。
【００８０】
１つまたは複数のメッセージが未確認の場合、調整エージェント１２７は、アーカイブ１４０の調整アプリケーション１４６に連絡して、再試行クエリ５０７を送信する。様々な実施態様において、再試行クエリ５０７は、メールの遅延が解決されるように時間インターバルΔｌｓｓｕｅＲｅｓｏｌｕｔｉｏｎが経過するのを許容した後の時間インターバルＴ３の間に送信できる。再試行クエリ５０７は、１つまたは複数のＧｅｎ−３メッセージのメッセージＩＤを含むことができる。調整エージェント１２７によってＧｅｎ−３と分類される保留中メッセージは、今は解決できる可能性のある遅延問題を有していた未確認のメッセージと一致する可能性がある。
【００８１】
再試行クエリ５０７は調整アプリケーション１４６を介してアーカイブ１４０によって受信でき、再試行クエリ５０７内で識別されたメッセージのそれぞれがアーカイブ１４０によって受信され、完全に保管されたかの判定を行うことができる。その判定に基づいて、アーカイブ１４０は、再試行クエリ５０７に対して、調整アプリケーション１４６を介して再試行クエリ応答５０８を応答することができる。様々な実施態様において、再試行応答５０８は、時間インターバルＴ３の間に送信でき、１つまたは複数のＧｅｎ−３メッセージのメッセージＩＤを含むことができる。
【００８２】
再試行クエリ５０７内で識別されたメッセージのすべてが完全に保管されたと判定された場合、アーカイブ１４０は、調整アプリケーション１４６を介して、各メッセージが保管されたことを表す肯定応答（Ａｃｋ）を含む配信確認クエリ応答５０８を応答することができる。再試行クエリ応答５０８が肯定応答を含んでいる場合、調整エージェント１２７は、メッセージがアーカイブされたことを確認し、そのメッセージをローカルのメッセージ記憶域３１０から削除することができる。
【００８３】
再試行クエリ５０７内で識別されたメッセージの１つまたは複数がアーカイブ１４０によって保管されていないと判定された場合、アーカイブ１４０は、調整アプリケーション１４６を介して、保管されていないメッセージを識別する否定応答（Ｎａｋ）を含む再試行クエリ応答５０８を応答することができる。調整エージェント１２７が否定応答を含む再試行クエリ応答５０８を受信すると、その未確認のメッセージがアーカイブされたことが確認できるまで、その未確認のメッセージはメッセージ記憶域３１０内で維持され、可用性が保証される。
【００８４】
一部の実施形態では、否定応答を含む再試行クエリ応答５０８が受信されると、調整エージェント１２７は、最大の待機時間しきい値および／または試みの最大数に達するまで、さらなる再試行クエリを発行することができる。他の実施形態では、調整エージェント１２７は、１回の再試行の試みが失敗すると直ちに修復を開始することがある。
【００８５】
メッセージが確認できない場合、調整エージェント１２７は、その未確認のメッセージをアーカイブ１４０に再送信することにより、未確認のメッセージの修復を行うことができる。図示されているように、一部の実施形態では、調整エージェント１２７は、再送信メッセージ５０９をジャーナルアプリケーション１４４に送信することにより、未確認のメッセージの修復を行うことができる。他の実施形態では、調整エージェント１２７は、再送信メッセージ５０９をアーカイブ１４０への再送信用にジャーナルエージェント１２５に送信することにより、未確認のメッセージの修復を行うことができる。
【００８６】
再送信メッセージ５０９は、未確認のメッセージのコピーを含むことができ、例えば、ＳＭＴＰによるジャーナルレポートｅメールメッセージとしてアーカイブ１４０に送信できる。様々な実施態様において、再送信メッセージ５０９を送信すると、アーカイブ１４０に送信されたオリジナルジャーナルレポート５０１が再生される。また、調整エージェント１２７は、未確認のメッセージのコピーをメッセージ記憶域３１０内にも保存しておく。
【００８７】
再送信メッセージ５０９が送信された後、その特定のメッセージがアーカイブされたことが確認されるまで、調整プロセスは再び開始できる。特定のメッセージが数回の再送信の試みの後でも調整できない場合、調整エージェント１２７は警告を生成して、管理者に警告を送信することができる。
【００８８】
様々な実施形態によれば、メッセージフロー５００は、ｅメールサーバー１１０とアーカイブ１４０の間で通信するための調整プロトコルに従った１つまたは複数のメッセージの交換に関与できる。調整プロトコルは、例えば、ＷｅｂサービスのプロトコルおよぶＷｅｂサービスのスキーマを使用するＷｅｂサービスとして実施できる。一部の実施形態では、調整プロトコルは、ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）通信プロトコルおよびアプリケーション間の通信用のプロシージャーに従ってＸＭＬドキュメントを伝達するように実施できる。Ｗｅｂサービスとして実施される場合、調整プロトコルは、インターネットなどのコンピューターネットワークを介して、ＨＴＴＰ、ＨＴＴＰＳ、ＳＭＴＰ、ＦＴＰなどの通信プロトコルに従って伝達できるように設計された、プラットフォームおよび言語に依存しない様々なフォーマットを使用することができる。調整プロトコルは、有利なことには、ファイヤウォールが通常はＨＴＴＰトラフィックを許可し、多くのアーカイブが、管理者がログインして、アーカイブされたコンテンツに検索を実行できるようにしたＨＴＴＰフロントエンドを既に提供しているので、Ｗｅｂサービスとして実施できることが理解できよう。
【００８９】
一部の実施形態では、調整プロトコルのクエリおよび応答メッセージは、ＸＭＬドキュメントとして実装できるＷｅｂサービスのクエリおよび応答を含んでよい。クエリおよび応答ＸＭＬドキュメントは、ＸＭＬネームスペース（ｘｍｌｎｓ）、ＸＭＬスキーマのインスタンス（ｘｓｉ）、ＸＭＬスキーマ定義（ｘｓｄ）拡張ファイル名などのＸＭＬスキーマおよび属性を使用して実装できる。一部の実施態様において、クエリおよび応答ＸＭＬドキュメントは、ＳＯＡＰエンベロープならびに呼び出しおよび応答情報が入ったＳＯＡＰボディーを含むＳＯＡＰメッセージを含んでよい。
【００９０】
以下は、Ｗｅｂサービスの調整プロトコルに従って実装される構成クエリ５０３および構成応答５０４の１つの非限定的な例を示している。この例では、構成クエリ５０３は、期待されるＳＬＡ、またはメッセージを処理するための待機時間など、特定の構成情報を入手するように要求している。
【００９１】
2011526131.tif 000003
【００９２】
応答：
ＳＬＡは「０年０月０日０時間１０分０秒」である。サポートされるバージョンは１．０および１．５である。
【００９３】
2011526131.tif 000004
【００９４】
以下は、Ｗｅｂサービスの調整プロトコルに従って実装される配信確認クエリ５０５および配信確認応答５０６の１つの非限定的な例を示している。この例では、配信確認クエリ５０５は、アーカイブアカウントｂａｎｋ＿ｃｕｓｔｏｍｅｒ＠ｅｈｓ．ｃｏｍに、示された時間（「Ｚ」は、ＸＭＬスキーマではＵＴＣを表す）に送信された２つのメッセージの状態を要求している。
【００９５】
2011526131.tif 000005
【００９６】
応答：
メッセージ待機時間は、最初のメッセージについては９分１５秒であり、２番目のメッセージについては８分１２秒である。
【００９７】
2011526131.tif 000006
【００９８】
一部の実施形態は、Ｗｅｂサービスのプロトコルに従って調整プロトコルを実施すると説明できるが、他のプロトコル、例えば、限定ではないが、ＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ：リモートプロシージャーコール）プロトコル、ｅメールメッセージングプロトコル、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ：トランスミッションコントロールプロトコル）などのインターネットプロトコル、ＲＥＳＴ（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ）プロトコル、ＲＳＳ（Ｒｅａｌｌｙ  Ｓｉｍｐｌｅ  Ｓｙｎｄｉｃａｔｉｏｎ）などのＷｅｂフィードプロトコル、および／または任意の他の適切な同期または非同期プロトコルも使用できることが理解できよう。
【００９９】
上述の実施形態に関する動作は、１つまたは複数のロジックフローを参照してさらに説明できる。代表的なロジックフローは、特に断りがなければ、必ずしも、提示された順、または任意の特定の順に実行される必要はないことを理解されたい。その上、ロジックフローに関して説明される様々な活動は、シリアルに、またはパラレルに実行できる。ロジックフローは、説明された実施形態の１つまたは複数のハードウェア要素および／またはソフトウェア要素、あるいは所与の設計上またはパフォーマンス上の制約セットについて所望されるような代替的要素を使用して実行できる。例えば、ロジックフローは、ロジックデバイス（例えば、汎用または専用コンピューター）による実行用のロジック（例えば、コンピュータープログラムの命令）として実行できる。
【０１００】
図６は、様々な実施形態を実行するのに適したロジックフロー６００の一実施形態を示している。ロジックフロー６００は、本明細書で説明される１つまたは複数の実施形態によって実行される動作の一部または全部を表すことができる。
【０１０１】
図示されているように、ロジックフロー６００は、調整すべきメッセージを受信するステップ（ブロック６１０）を含んでよい。様々な実施態様において、調整すべきメッセージは、ｅメールサーバー１１０によって保管用にアーカイブ１４０に送信されたメッセージと一致する可能性がある。一部の実施態様では、例えば、調整すべきメッセージは、保管用にアーカイブ１４０に送信されたメッセージのコピーを含むことができる。調整すべきメッセージは、ｅメールサーバー１１０によってアーカイブ１４０に送信されたジャーナルレポート５０１と一致するジャーナルレポートのコピー５０２に入れて受信できる。ジャーナルレポートのコピー５０２は、受信者に送信され、保管用にアーカイブ１４０に送信された同じメッセージのコピーを含んでよい。
【０１０２】
ロジックフロー６００は、受信されたメッセージを調整用に分類するステップ（ブロック６２０）を含んでよい。様々な実施形態において、調整すべきメッセージは、アーカイブ１４０に関連付けられた待機時間と一致する時間インターバル、調整すべきメッセージのコピーがローカルキャッシュ３２０に入っている場合の時間インターバル、および遅延の問題を解決するための時間インターバルなど、１つまたは複数の時間インターバルに基づいて分類できる。調整すべきメッセージは、配信確認クエリへの否定応答を受信したことに基づいても分類できる。
【０１０３】
ロジックフロー６００は、調整用のメッセージの分類に応じて配信確認クエリをアーカイブに発行するステップ（ブロック６３０）を含んでよい。様々な実施形態において、配信確認クエリは、アーカイブ１４０の待機時間に基づいて遅延してよい。一部の実施態様では、配信確認クエリは、Ｗｅｂサービスのプロトコルに従ってアーカイブ１４０に送信できる。
【０１０４】
ロジックフロー６００は、サーバーに送信されるメッセージのアーカイビングを確認するステップ（ブロック６４０）を含んでよい。様々な実施形態において、調整すべきメッセージは、アーカイブ１４０に送信されたメッセージが保管されたことが確認されるまで、メッセージ記憶域３１０などの保留エリアに保管される。アーカイブ１４０でのメッセージの保管を確認した後、調整すべきメッセージはメッセージ記憶域３１０から削除できる。配信確認クエリへの否定応答が受信されると、最大待機時間および／または試みの最大数に達するまで、再試行クエリをアーカイブ１４０に送信できる。
【０１０５】
ロジックフロー６００は、未確認のメッセージを修復するステップ（ブロック６５０）を含んでよい。様々な実施形態において、再試行クエリへの否定応答を受信した後、調整すべきメッセージをアーカイブに再送信できる。未確認のメッセージがアーカイブ１４０に再送信された後、調整プロセスは、その特定のメッセージがアーカイブされたことが確認されるまで、再び開始できる。特定のメッセージが調整できない場合でも、メッセージがメッセージ記憶域３１０内に残存して、その可用性が保証されることが理解できるであろう。
【０１０６】
ロジックフロー６００は特定のシーケンスのステップを示している可能性があるが、代替的実施形態によれば、他のシーケンスのステップも実行できることが理解できよう。その上、ロジックフロー６００の一部の個々のステップは複数のサブステップを含むことが可能で、その複数のサブステップは、その個別のステップに適した様々なシーケンスで実行されてよい。さらに、特定の実施態様に応じて、追加のステップが追加されてもよいし、または一部のステップは除去されてもよい。
【０１０７】
図７は、様々な実施形態用のロジックを保管するのに適した製品７００の物品の図を示している。図示されているように、製品７００の物品は、ロジック７０４を保管するための記憶域メディア７０２を含んでよい。記憶域メディア７０２の例には、電子データを保管できる１つまたは複数のタイプのコンピューター読み取り可能記憶域メディア、例えば、揮発性メモリまたは不揮発性メモリ、取り外し可能または取り外し不可メモリ、消去可能または消去不可メモリ、書き込み可能または再書き込み可能メモリなどを挙げることができる。ロジック７０４の例には、様々なソフトウェア要素、例えば、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータープログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、プロシージャー、ソフトウェアインターフェイス、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ：アプリケーションプログラムインターフェイス）、命令セット、コンピューティングコード、コンピューターコード、コードセグメント、コンピューターコードセグメント、語、値、記号、またはそれらの任意の組合せを挙げることができる。
【０１０８】
一実施形態では、例えば、製品７００の物品および／またはコンピューター読み取り可能記憶域メディア７０２は、コンピューターによって実行されると、説明された実施形態に応じた方法および／または動作をコンピューターに実行させる、実行可能なコンピュータープログラムの命令を含むロジック７０４を保管することができる。コンピューターの例には、説明された実施形態に応じたコンピューティング機能および／または通信機能を有する任意の適切なコンピューティングデバイスを挙げることができる。例示的なコンピューティングデバイスとしては、限定でないが、モバイルデバイス、パーソナルデジタルアシスタント、モバイルコンピューティングデバイス、スマートフォン、携帯電話、ハンドセット、単方向ページャー、双方向ページャー、メッセージングデバイス、コンピューター、ＰＣ（パーソナルコンピューター）、デスクトップコンピューター、ラップトップコンピューター、ノートブックコンピューター、ハンドヘルドコンピューター、サーバー、サーバーアレイまたはサーバーファーム、Ｗｅｂサーバー、ネットワークサーバー、インターネットサーバー、ワークステーション、ミニコンピューター、メインフレームコンピューター、スーパーコンピューター、ネットワーク機器、Ｗｅｂ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースのシステム、民生用電子機器、プログラマブル民生用電子機器、テレビ、デジタルテレビ、セットトップボックス、ワイヤレスアクセスポイント、基地局、加入者局、モバイル加入者センター、無線ネットワークコントローラー、ルーター、ハブ、ゲートウェイ、ブリッジ、スイッチ、マシン、またはそれらの組合せを挙げることができる。
【０１０９】
実行可能なコンピュータープログラム命令には、ソースコード、コンパイル型コード、解釈型コード、実行可能コード、静的コード、動的コードなど、任意の適切なタイプのコードを挙げることができる。実行可能なコンピュータープログラム命令は、コンピューターに特定の機能を実行するように指示するための事前定義されたコンピューター言語、作法または構文に従って実装できる。命令は、Ｃ＃、Ｃ、Ｃ＋＋、Ｊａｖａ（登録商標）、ＢＡＳＩＣ、Ｐｅｒｌ、Ｍａｔｌａｂ、Ｐａｓｃａｌ、Ｖｉｓｕａｌ  ＢＡＳＩＣ、アセンブリー言語およびその他など、任意の適切なハイレベル、ローレベル、オブジェクト指向、ビジュアル、コンパイル型および／または解釈型のプログラミング言語を使用して実装できる。
【０１１０】
様々な実施形態がハードウェア要素、ソフトウェア要素または両方の組合せを使用して実施できる。ハードウェア要素の例には、ロジックデバイスに対して前に挙げられた例のすべて、さらにマイクロプロセッサ、回路、回路素子（例えば、トランジスタ、抵抗器、キャパシター、インダクターなど）、集積回路、ロジックゲート、レジスター、半導体デバイス、チップ、マイクロチップ、チップセットなどを挙げることができる。ソフトウェア要素の例には、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータープログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、プロシージャー、ソフトウェアインターフェイス、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ：アプリケーションプログラムインターフェイス）、命令セット、コンピューティングコード、コンピューターコード、コードセグメント、コンピューターコードセグメント、語、値、記号、またはそれらの任意の組合せを挙げることができる。実施形態をハードウェア要素および／またはソフトウェア要素を使用して実施するかの決定は、所与の実施態様に対して所望されるような、所望の計算レート、パワーレベル、熱耐性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバス速度、および他の設計上またはパフォーマンス上の制約など、任意の数の要因に応じて異なることがある。
【０１１１】
一部の実施形態は、「結合」および「接続」という表現をそれらの派生語と共に使用して説明されることがある。これらの用語は、必ずしも相互に同義語として意図されているわけではない。例えば、一部の実施形態は、２つ以上の要素が互いに直接的な物理的または電気的接触状態にあることを表すために用語「接続」および／または「結合」を使用して説明されることがある。しかし、用語「結合」は、２つ以上の要素が互いに直接的な接触状態にないが、それでも互いに協力する、または相互作用することも意味することがある。
【０１１２】
強調しておくが、「本開示の要約」は、３７  Ｃ．Ｆ．Ｒ．セクション１．７２（ｂ）に準拠し、それにより求められるとおり、要約は、読者が技術的開示の性質を迅速に確認できるように記載されている。要約は、請求項の範囲または意味を解釈または限定するために使用してはならないということを理解したものとして提出されている。加えて、前述された「発明を実施するための形態」では、開示を簡素化する目的で様々な特徴が１つの実施形態にまとめられていることが理解できよう。開示のこの方法は、特許請求される実施形態が、各請求項で明示的に記載されるよりも多くの特徴を必要とする意図を反映すると解釈してはならない。むしろ、以下の請求項の範囲が反映しているように、発明の主題は、１つの開示された実施形態のすべての特徴より少ない特徴にある。したがって、以下の特許請求の範囲は、本明細書により、「発明を実施するための形態」に組み込まれるものとし、各請求項はそれ自体で個別の実施形態として存在する。添付の特許請求の範囲では、用語「含む（ｉｎｃｌｕｄｉｎｇ）」および「その場合（ｉｎ  ｗｈｉｃｈ）」は、それぞれの用語「含む、備える、有する（ｃｏｍｐｒｉｓｉｎｇ）」および「その場合（ｗｈｅｒｅｉｎ）」のプレーン英語の均等物として使用される。その上、用語、「第１」、「第２」、「第３」などは単にラベルとして使用され、それぞれのオブジェクトに数の要件を課すようには意図されていない。
【０１１３】
主題は、構造的特徴および／または方法的行為に固有の文言で記載されているが、添付の特許請求の範囲で定義される主題は、上述の固有な特徴または行為に必ずしも限定されないことを理解されたい。むしろ、上述の固有な特徴および行為は、請求項を実施する形の例として開示されている。
【図１】
2011526131.tif 000007
【図２】
2011526131.tif 000008
【図３】
2011526131.tif 000009
【図４】
2011526131.tif 000010
【図５】
2011526131.tif 000011
【図６】
2011526131.tif 000012
【図７】
2011526131.tif 000013
【国際調査報告】
2011526131.tif 000014
2011526131.tif 000015