JP2011526131A - 通信アーカイブに対する調整および修復 - Google Patents

通信アーカイブに対する調整および修復 Download PDF

Info

Publication number
JP2011526131A
JP2011526131A JP2011516383A JP2011516383A JP2011526131A JP 2011526131 A JP2011526131 A JP 2011526131A JP 2011516383 A JP2011516383 A JP 2011516383A JP 2011516383 A JP2011516383 A JP 2011516383A JP 2011526131 A JP2011526131 A JP 2011526131A
Authority
JP
Japan
Prior art keywords
message
archive
query
messages
delivery confirmation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2011516383A
Other languages
English (en)
Inventor
トーマス ショーン
プッラ ゴータム
ワン ヤミン
チャンド ナヴィーン
カイ ジェフリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2011526131A publication Critical patent/JP2011526131A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/60Business processes related to postal services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/42Mailbox-related aspects, e.g. synchronisation of mailboxes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/23Reliability checks, e.g. acknowledgments or fault reporting

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Marketing (AREA)
  • Theoretical Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

サーバーによって保管用にアーカイブに送信されるメッセージの調整および修復のための手法が説明される。一部の手法は、アーカイブに保管するためにサーバーによって送信されるメッセージと一致する、調整すべきメッセージを受信するステップを含んでよい。受信されたメッセージは調整用に分類でき、調整用のメッセージの分類に従って配信確認クエリをアーカイブに発行できる。配信確認クエリへの応答に基づいて、保管用にアーカイブに送信されたメッセージがアーカイブで本当に保管されたかを確実に判定することができる。他の実施形態も説明され、特許請求される。

Description

本発明は、通信アーカイブに対する調整および修復に関する。
電子メール(eメール)は、エンドツーエンドメッセージ配信に、メッセージが複数のマシンにわたって、様々な組織およびネットワークを経由して移動でき、一時的な接続停止後も残存できるようにするストアアンドフォワード方式を提供する。この非同期方式のマイナス面は、送信側のユーザーまたは組織は、受信者がメッセージを受信したのか、いつ受信したのか、および何らかの受信後処理が正常に行われたかを正確に知る方法を有していないことである。
この問題は、eメールアーカイブの事例で特に顕著である。法規制を順守するため、または裁判所の命令により、eメール保持要件が課されている企業または組織は、そのようなアーカイブからeメールを検索して、作成できる必要がある。それができない場合、相当な罰金が科され、評判が損なわれる。現在のeメールシステムが、アーカイブに送信されたメッセージがアーカイブに正常に保存されたことを保証することができないため、これらの企業は、企業のアーカイブに加えて、冗長なバックアップの中を検索しなければならないという、かなりの費用を強いられる。
メッセージ生成eメールシステムの観点からは、アーカイブまでの経路上にデータ消失のいくつかの潜在的ポイントがある。例えば、生成eメールシステムまたは中間eメールシステムは、ソフトウェア障害またはハードウェア障害が発生することがあり、アーカイブ宛のメッセージが失われる。加えて、メッセージが受信されるアーカイブのフロントエンドeメールシステム、またはメッセージがデータベースに保存されるアーカイブの挿入(injection)システムは、ソフトウェア障害またはハードウェア障害が発生することがあり、アーカイブ宛のメッセージが失われる。その結果、これらの問題および他の問題を解決するため、およびエンドツーエンド配信を保証して、トランザクションのない環境でメッセージをアーカイブするための改善が必要である。
この課題を解決するための手段は、選ばれた概念を簡略化された形で紹介するために記載されており、これらについては、以下の「発明を実施するための形態」でさらに詳しく説明される。この概要は、特許請求される主題の重要な特徴または本質的な特徴を特定することは意図されておらず、また同主題の範囲を限定するために使用されることも意図されていない。
様々な実施形態が、アーカイブでの保管用にサーバーによって送信されるメッセージの調整(reconciliation)および修復(remediation)の手法を対象にしている。一部の手法は、サーバーによって保管用にアーカイブに送信されるメッセージと一致する、調整(reconcile)すべきメッセージを受信するステップと、受信されたメッセージを調整用に分類するステップと、調整用のメッセージの分類に従って配信確認クエリをアーカイブに発行するステップと、サーバーからアーカイブに送信されたメッセージがアーカイブに保管されたかを配信確認クエリへの応答に基づいて判定するステップとを含むことができる。配信確認クエリへの否定応答の受信後、再試行クエリを発行することができる。再試行クエリへの否定応答の受信後、調整すべきメッセージをアーカイブに再送信することができる。調整すべきメッセージは、配信確認クエリへの肯定応答を受信後に確認が受信されて、その確認が削除されるまで、保管することができる。他の実施形態も説明され、特許請求される。
これらおよび他の特徴および利点は、以下の「発明を実施するための形態」での詳細な説明を読み、関連の図面を検討すれば明らかになろう。前述の概略の説明および以下の詳細な説明は、単に説明であり、特許請求される態様の限定ではないことを理解されたい。
動作環境の実施形態の図である。 コンピューティングデバイスの実施形態の図である。 調整アプリケーションの実施形態の図である。 ダイアグラムの実施形態の図である。 メッセージフローの実施形態の図である。 ロジックフローの実施形態の図である 物品の実施形態の図である。
様々な実施形態が、特定の動作、機能またはサービスを実行するような仕組みの物理的構造または論理的構造を含む。構造は、物理的構造、論理的構造またはその両方の組合せを有することができる。物理的構造または論理的構造は、ハードウェア要素、ソフトウェア要素またはその両方の組合せを用いて実装される。しかし、特定のハードウェア要素またはソフトウェア要素を参照する実施形態の説明は、例として意図されているのであって、限定として意図されているのではない。実際に実施形態を実施するためにハードウェア要素またはソフトウェア要素を使用する決定は、多くの外部要因、例えば、所望の計算レート、パワーレベル、熱耐性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバス速度、および他の設計上またはパフォーマンス上の制約に依存する。さらに、物理的構造または論理的構造は、電子信号または電子メッセージの形で構造間で情報を伝達するための、対応する物理的接続または論理的接続を有することができる。その接続は、情報または特定の構造用に、適宜、ワイヤード接続および/またはワイヤレス接続を有することができる。「1つの実施形態」または「一実施形態」と言及した場合、その実施形態に関連して説明される特定の特徴、構造または特性は少なくとも1つの実施形態に含まれることを意味することに留意することは価値がある。本明細書内の様々な箇所で「1つの実施形態では」または「一実施形態では」という句が出現した場合、それは、必ずしも、すべて同じ実施形態を指しているわけではない。
アーカイブでの保管用にサーバーによって送信されるメッセージの調整および修復の様々な手法が提供される。一部の手法は、アーカイブに保管するためにサーバーによって送信されるメッセージと一致する、調整すべきメッセージを受信するステップを含む。受信されたメッセージは調整用に分類することができ、調整用のメッセージの分類に従って配信確認クエリをアーカイブに発行することができる。配信確認クエリへの応答に基づいて、保管用にアーカイブに送信されたメッセージが実際にアーカイブに保管されたかが確実に判定することができる。追加または代替で、配信確認クエリへの否定応答の受信後、再試行クエリを発行することができる。再試行クエリへの否定応答が受信された場合、調整すべきメッセージをアーカイブに再送信することができる。調整すべきメッセージは、配信確認クエリへの肯定応答を必ず受信した後でのみ、確認が受信されて、その確認が削除されるまで、保管することができ、メッセージの可用性が保証される。
図1は、様々な実施形態を実施するのに適した動作環境100のブロック図を示している。動作環境100は、単一エンティティ環境による実装用、または複数のエンティティ分散環境による実装用に設計された要素を含んでよい。各要素は、所与の設計パラメーターセットまたは所与のパフォーマンス制約セットについて所望されるようなハードウェア要素、ソフトウェア要素またはそれらの任意の組合せとして実装できる。ハードウェア要素の例には、デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、回路素子(例えば、トランジスタ、抵抗器、キャパシター、インダクターなど)、集積回路、ASIC(Application Specific Integrated Circuit:特定用途向け集積回路)、PLD(Programmable Logic Device:プログラマブルロジックデバイス)、DSP(Digital Signal Processor:デジタル信号プロセッサ)、FPGA(Field Programmable Gate Array:フィールドプログラマブルゲートアレイ)、メモリユニット、ロジックゲート、レジスター、半導体デバイス、チップ、マイクロチップ、チップセットなどを挙げることができる。ソフトウェア要素の例には、任意のソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータープログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、インターフェイス、ソフトウェアインターフェイス、API(Application Program Interface:アプリケーションプログラムインターフェイス)、命令セット、コンピューティングコード、コンピューターコード、コードセグメント、コンピューターコードセグメント、語、値、記号、またはそれらの任意の組合せを挙げることができる。
本明細書で使用された場合、用語「システム」、「サブシステム」、「コンポーネント」および「モジュール」は、ハードウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアで構成される、コンピューター関連のエンティティを指すように意図されている。例えば、コンポーネントは、プロセッサ上で実行される、プロセス、プロセッサ、ハードディスクドライブ、(光学式記憶域メディアおよび/または磁気記憶域メディアの)複数の記憶域ドライブ、オブジェクト、実行可能コード、実行のスレッド、プログラムおよび/またはコンピューターとして実装できる。例であるが、サーバー上で実行されるアプリケーションおよびサーバーの両方がコンポーネントになり得る。1つまたは複数のコンポーネントが1つのプロセスおよび/または実行のスレッド内に存在し得て、コンポーネントは1つのコンピューター上でローカルであってもよいし、および/または所与の実施態様に所望されるような2つ以上のコンピューター間で分散されてもよい。実施形態はこのコンテキストで限定されることはない。
図1に示された例では、動作環境100は、他の要素の中でもとりわけ、eメールサーバー110およびアーカイブ140を含んでよい。図1に示された動作環境100は、あるトポロジー(接続形態)では、限定された数のノードを有するが、動作環境100は、代替的なトポロジーでは、所与の実施態様に所望されるような、より多いノードまたはより少ないノードを含んでよいことが理解できよう。様々な実施形態において、eメールサーバー110は、電子通信システムを介してメッセージを送信および受信するためにeメールメッセージングシステム内に実装されてよい。アーカイブ140は、オンサイトまたはオフサイトのアーカイビングシステムとして、またはeメールメッセージングシステムから電子通信システムを介して受信されるメッセージをアーカイブするためのデータ保管機能として実装されてよい。図示されているように、eメールサーバー110およびアーカイブ140は、ネットワーク118および適切なワイヤレス通信メディアまたはワイヤード通信メディアを介して通信上で結合できる。eメールサーバー110およびアーカイブ140は、ネットワーク118を介して情報を伝達し、情報の単方向または双方向の交換に関与する可能性がある、相互間の動作を調整することができる。ネットワーク118は、パケット交換ネットワーク、回線交換ネットワーク、またはその両方の組合せを含んでよい。ネットワーク118を介して伝達される情報は、様々なネットワークインターフェイスを介して送信されるデータメッセージとして実装できる。例のネットワークインターフェイスには、パラレルインターフェイス、シリアルインターフェイスおよびバスインターフェイスがある。
eメールサーバー110は、様々なタイプのメッセージングクライアントと通信するように動作可能であってよい。一部の実施形態では、eメールサーバー110は、Microsoft Corporation、Redmond、WashingtonによるMICROSOFT OFFICE OUTLOOK(登録商標)アプリケーションソフトウェアなど、クライアントベースのソフトプログラムと通信するためのインターフェイスを提供することがある。また、eメールサーバー110は、限定ではないが、SMTP(Simple Mail Transfer Protocol:簡易メール転送プロトコル)のクライアント、HTTP(Hypertext Transfer Protocol:ハイパーテキスト転送プロトコル)のクライアント、MAPI(Messaging Application Programming Interface:メッセージングアプリケーションプログラミングインターフェイス)のクライアント、POP3(Post Office Protocol 3:ポストオフィスプロトコル3)のクライアント、IMAPまたはIMAP4(Internet Message Access Protocol:インターネットメッセージアクセスプロトコル)のクライアント、NNTP(Network News Transfer Protocol:ネットワークニュース転送プロトコル)のクライアント、Webメールのクライアントなど、様々な他のタイプのeメールクライアントと通信するためのインターフェイスを提供することもできる。
eメールサーバー110は、Webアクセス、モバイルアクセスおよび同期化機能、IIS(Internet Information Services:インターネット情報サービス)、ならびに多様なインターネットアクセスプロトコル、およびHTTP通信によるRPC(Remote Procedure Call:リモートプロシージャーコール)を含むHTTPベースのプロトコルによる通信を許容するためのSMTP、NNTP、IMAP4およびPOP3サービスを提供するISAPI(Internet Server Application Programming Interface:インターネットサーバーアプリケーションプログラミングインターフェイス)アプリケーションを提供するように動作可能であってよい。一部の実施態様では、eメールサーバー110は、モバイルクライアントのために帯域幅を効率よく利用するために、圧縮されたWbXML(Wireless Binary XML:ワイヤレスバイナリXML)データとしてフォーマット化されたデータを伝達することができる。標準のインターネットプロトコルに加えて、eメールサーバー110は、会社または他の組織によって使用される場合、独自プロトコルまたは非標準のプロトコルによる通信をサポートすることもできる。
様々な実施形態において、eメールサーバー110および/またはアーカイブ140は、説明される実施形態によれば、1つまたは複数の調整および修復手法を実行することができる。一部の実施形態では、eメールサーバー110は、サーバーベースのeメールソフトウェアプログラムを実行するサーバーコンピューティングデバイスを含んでよい。したがって、一部の実施形態では、1つまたは複数の調整および修復手法が、Microsoft Corporation、Redmond、WashingtonによるMICROSOFT EXCHANGE SERVER(登録商標)などのサーバーベースのソフトウェアプログラム内の機能として実行できる。実施形態はこのコンテキストで限定されないこと、およびeメールサーバー110は、Webブラウザを経由してeメールサービスへのアクセスを提供するWebベースのeメールアプリケーションを含めて、他のタイプのアプリケーション、プログラムまたはサービスを実行できることが理解できよう。
一部の実施形態では、アーカイブ140は、1つまたは複数のサーバーアプリケーションおよび/またはWebサービスを実行するサーバーコンピューティングデバイスを含んでよい。アーカイブ140は、インターネットなどのコンピューターネットワークを介して、HTTP(Hypertext Transfer Protocol:ハイパーテキスト転送プロトコル)、HTTPS(Hypertext Transfer Protocol over Secure Socket Layer:セキュアソケット層を介したハイパーテキスト転送プロトコル)、SMTP(Simple Mail Transfer Protocol:簡易メール転送プロトコル)、FTP(File Transfer Protocol:ファイル転送プロトコル)などを使用して通信するように設計された、プロットフォームおよび言語に依存しないフォーマットを使用して様々なWebサービスを実行することができる。したがって、一部の実施形態では、1つまたは複数の調整および修復手法が、サーバーアプリケーションおよび/またはWebサービス内の機能として実行できる。実施形態はこのコンテキストで限定されないこと、およびアーカイブ140は、他のタイプのオンサイトまたはオフサイトのアーカイビングシステムおよび/またはデータ保管機能によって実施できることが理解できよう。
一般的に、eメールサーバー110およびアーカイブ140は、説明される実施形態によれば、コンピューティング機能および通信機能を有する任意の適切なタイプのコンピューティングデバイスを含んでよい、またはそれによって実行されてよい。そのような機能を実装するために、eメールサーバー110およびアーカイブ140は、それぞれのコンピューティングシステム120、120aおよび通信システム130、130aを含んでよい。コンピューティングシステム120、120aは、様々なコンピューティング要素、例えば、1つまたは複数のプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラー、周辺機器、インターフェイス、オシレータ、タイミングデバイス、ビデオカード、オーディオカード、マルチメディアI/O(入出力)コンポーネントなどを含んでよい。通信システム130、130aは、様々な通信要素、例えば、送信機、受信機、送受信機、無線受信機、ネットワークインターフェイス、ベースバンドプロセッサ、アンテナ、増幅器、フィルターなどを含んでよい。
コンピューティングシステム120、120aは、他の要素の中でもとりわけ、それぞれのサーバープログラム122、142を実装してよい。サーバープログラム122、142およびそれらに含まれる要素は、説明される実施形態によれば、eメールサーバー110およびアーカイブ140の動作をサポートする、1つまたは複数のタイプのアプリケーションプログラム、ソフトウェアコンポーネント、プログラムモジュール、および/またはプログラムデータを含んでよい、またはそれらによって実行されてよい。一部の実施態様では、サーバープログラム122は、1つの物理的サーバーコンピューターデバイス上に実装されてよい。あるいは、様々なサーバープログラム122が、地理的なデプロイメント要件を満たすため、および/または多数のユーザーをサポートする場合にパフォーマンスおよびフォールトトレランスを提供するために異なるドメインおよびサイトに配置される可能性がある複数のサーバーにまたがって実装されてもよい。
図1に示された例では、サーバープログラム122は、例えば、eメールサーバー110に対して特定のサービスおよび機能を提供するように動作可能なハブトランスポートサーバーロール124およびメールボックスサーバーロール126など、1つまたは複数のサーバーロールを実行することができる。ハブトランスポートサーバーロール124は、着信メッセージおよび発信メッセージを処理するように動作可能であってよく、メールボックスサーバーロール126は、メールボックスのデータおよびパブリックフォルダーのデータをホストするように動作可能であってよい。図示されているように、ハブトランスポートサーバーロール124は、ジャーナルエージェント125を含んでよく、メールボックスサーバーロール126は調整エージェント127を含んでよい。様々な実施形態によれば、ジャーナルエージェント125および調整エージェント127は、以下でさらに詳しく説明されるように、1つまたは複数の調整および修復手法を実行することができる。また、サーバープログラム122は、説明される実施形態によれば、他のサーバーロールおよび/または他のタイプのサーバーアプリケーションなど、他のサーバープログラム128も含んでよい。
図1に示された例では、サーバープログラム142は、例えば、アーカイブ140に対して特定のサービスおよび機能を提供するように動作可能なジャーナルアプリケーション144および調整アプリケーション146など、1つまたは複数のサーバーアプリケーションを実行することができる。様々な実施形態によれば、ジャーナルアプリケーション144および調整アプリケーション146は、以下でさらに詳しく説明されるように、1つまたは複数の調整および修復手法を実行するためにジャーナルエージェント125および調整エージェント127と通信することができる。また、サーバープログラム142は、説明される実施形態によれば、他のタイプのサーバーアプリケーションおよび/またはWebサービスなど、他のサーバープログラム148も含んでよい。
eメールサーバー110およびアーカイブ140は、説明される実施形態によれば、eメールメッセージ、ならびにメールボックスおよびフォルダー内の他のデータなどの項目を保管するためのそれぞれのデータストアを含むこともできるし、またはそのようなデータストアと通信することもできる。図1を参照すると、eメールサーバー110用のデータストアはeメールサーバーデータベース150によって実装されてよく、アーカイブ140用のデータストアはアーカイブデータベース160によって実装されてよい。例示の目的で個別の要素として示されているが、一部の実施形態では、eメールサーバーデータベース150はeメールサーバー110の一部を形成してもよいし、および/またはアーカイブデータベース160はアーカイブ140の一部を形成してもよいことが理解できよう。また、eメールサーバー110用およびアーカイブ140用のそれぞれのデータストアはeメールサーバー110およびアーカイブ140と一緒に置かれてもよいし、または他のリモートデバイスに置かれてもよい。
図2は、様々な実施形態を実施するのに適したコンピューティングデバイス200の例示的なアーキテクチャを示している。コンピューティングデバイス200は、例えば、eメールサーバー110を表してよい。図示されているように、コンピューティングデバイス200は、プロセッサ202およびシステムメモリ204を備えた処理システムを含む、パーソナルコンピューターまたはサーバーコンピューターの従来のコンピューティングアーキテクチャを示している。システムメモリ204には、他のタイプのメモリの中でもとりわけ、RAM(ランダムアクセスメモリ)206およびROM(読み取り専用メモリ)208を含んでよい。BIOS(basic I/O system:基本I/O(入出力)システム)などのI/Oシステムは、始動動作中などに、ROM 208に保管されたロジックを使用して、コンピューティングデバイス200内の要素間で情報を転送するのを支援するためのルーチンを実行することができる。システムバス210は、情報転送およびデータ処理動作を容易に行うために、コンピューティングデバイス200の要素のすべてを通信上で結合する。
コンピューティングデバイス200は、Microsoft Corporation、Redmond、WashingtonによるMICROSOFT WINDOWS(登録商標)オペレーティングシステムまたは他の適切なオペレーティングシステムなどのオペレーティングシステム214を保管するための大容量記憶域デバイス212をさらに含む。また、大容量記憶域デバイス212は、以下でさらに詳しく説明されるように、様々なアプリケーションプログラムならびに他のプログラムモジュール216およびプログラムデータ218も保管してよい。
大容量記憶域デバイス212は、システムバス210に接続された大容量記憶域コントローラー(図示せず)を介してプロセッサ202に接続される。大容量記憶域デバイス212およびその関連のコンピューター読み取り可能メディアは、コンピューティングデバイス200に不揮発性記憶域を提供する。本明細書で使用されるコンピューター読み取り可能メディアという語は、ハードディスクドライブまたはCD−ROMドライブなどの大容量記憶域デバイスを指すが、当業者は、コンピューター読み取り可能メディアは、コンピューティングデバイス200がアクセスできる任意の使用可能なメディアであってよいことが理解できよう。例であって、限定ではないが、コンピューター読み取り可能メディアは、コンピューター記憶域メディアおよび通信メディアを含んでよい。コンピューター記憶域メディアには、コンピューター読み取り可能な命令、データ構造、プログラムモジュールまたは他のデータなどの情報の保管用に任意の方法または技術で実装された揮発性および不揮発性、取り外し可能および取り外し不可のメディアがある。コンピューター記憶域メディアには、限定ではないが、RAM、ROM、EPROM、EEPROM、フラッシュメモリまたは他の半導体メモリ技術、CD−ROM、DVD、または他の光学式記憶域デバイス、磁気カセット、磁気テープデバイス、磁気ディスク記憶域デバイスまたは他の磁気記憶域デバイス、あるいは所望の情報を保管するために使用でき、コンピューターによってアクセス可能な、任意の他のメディアがある。
様々な実施形態によれば、コンピューティングデバイス200は、ネットワーク接続された環境で、ネットワーク118を介したリモートコンピューターとの論理的接続を使用して動作できるが、ネットワーク118は、一部の実施態様では、インターネットなど、TCP(Transmission Control Protocol:伝送制御プロトコル)およびIP(Internet Protocol:インターネットプロトコル)ネットワークであってよい。コンピューティングデバイス200は、システムバス210に接続されたネットワークインターフェイス220(例えば、ワイヤードまたはワイヤレスネットワークインターフェイス)を介してネットワーク118に接続できる。ネットワーク118は、所望の実施形態に応じて、限定ではないが、WAN(Wide Area Network:ワイドエリアネットワーク)、LAN(local area network:ローカルエリアネットワーク)、および/または携帯電話ネットワークなど、任意のタイプのネットワークを含んでよいこと、およびネットワークインターフェイス220は、GPRS、CDMA、1xRTT、IEEE 802.11、Bluetooth(登録商標)(PAN)、および多様なネットワークおよび/またはリモートコンピューターシステムに接続するためのその他など、様々なトランスポート層をサポートできることが理解できよう。
コンピューティングデバイス200は、多数の入力デバイス224からの入力を受信して処理するためのI/Oコントローラー222を含んでよい。ユーザーは、コマンドおよび情報をキーボード、およびマウス、トラックボールまたはタッチパッドなどのポインティングデバイスなどの入力デバイス224からコンピューティングデバイス200に入力できる。入力デバイス224の他の例には、マイクロホン、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナーなどを挙げることができる。入力デバイス224は、システムバス210に結合されたI/Oコントローラー222を介してプロセッサ202に接続できるが、他のインターフェイスおよびバス構造、例えば、パラレルポート、ゲームポートまたはUSB(Universal Serial Bus:ユニバーサルシリアルバス)によって接続することもできる。また、I/Oコントローラー222は、様々な出力デバイス224、例えば、モニター、またはI/Oコントローラー222を介してシステムバス210に接続される他のタイプのディスプレイデバイス、プリンター、スピーカー、および他の周辺デバイスに出力を提供することもできる。
上述のように、多数のプログラムモジュールおよびデータファイルがコンピューティングデバイス200の大容量記憶域デバイス212およびRAM 206に保管できる。図2に示された例では、大容量記憶域デバイス212およびRAM 206は、オペレーティングシステム214だけでなく、ジャーナルエージェント125を含むハブトランスポートサーバーロール124、および調整エージェント127を含むメールボックスサーバーロール126を含む1つまたは複数のサーバープログラム122も保管することができる。様々な実施形態によれば、調整エージェント127は、1つまたは複数の調整および修正手法を実行するように動作可能であってよい。一実施形態では、例えば、調整エージェント127は、図3を参照して説明されるように実装できる。
図3は、様々な実施形態を実施するのに適した調整アプリケーション300の一実施形態を示している。図1および図2を参照すると、一部の実施態様では、調整アプリケーション300は、eメールサーバー110に存在するサーバープログラム122の1つとしての調整エージェント127として作動してよい。また、eメールアプリケーション300の1つまたは複数の部分も、コンピューティングデバイス200のRAM 206内の、またはコンピューターソフトウェア技術分野の当事者なら想到するであろう任意の他の変形形態内のアプリケーションプログラムによって実行されてよい。
図示されているように、eメールアプリケーション300は、メッセージ記憶域310を含むことができる。メッセージ記憶域310は、例示の目的であって、限定ではないが、調整アプリケーション300の一部として示されているが、メッセージ記憶域310は、所望の実施形態に応じて様々な場所にあってよいことが理解できよう。例えば、メッセージ記憶域310は、eメールサーバー110および/またはeメールサーバーデータベース150にあってもよい。1つの非限定の例として、調整アプリケーション300のメッセージ記憶域310は、コンピューティングデバイス200のプログラムデータ218内で、データベースおよび/または1つまたは複数のファイルの中に入っていてもよい。別の非限定の例として、メッセージ記憶域310は、オペレーティングシステム214などのオペレーティングシステムのファイルシステム内の、ユーザーによって指定されたディレクトリ内に全部または一部が入っていてもよい。
図3に示された例では、メッセージ記憶域310は、調整を保留中の、世代0(Gen−0)メッセージ312、世代1(gen−1)メッセージ314、世代2(Gen−2)メッセージ316、および世代3(Gen−3)メッセージ318と分類できる1つまたは複数のメッセージを含む。様々な実施形態において、クエリがメッセージ分類に応じて発行できる。例えば、クエリは、調整プロセスのパフォーマンスを最適化するため、およびアーカイブ140に発行されるクエリの数を最小にするために、調整の世代に基づいて発行できる。
一部の実施形態では、調整を保留中のメッセージは、アーカイブ140に関連付けられた待機時間に基づいてGen−0メッセージ312と分類できる。調整アプリケーション300によって受信され、Gen−0メッセージ312と分類されるメッセージは、アーカイブ140に最近送信されたメッセージと一致する可能性がある。様々な実施形態によれば、保留中のGen−0メッセージ312に関してクエリは発行されず、クエリは、アーカイブ140に関連付けられた待機時間が経過するまで遅延される。
特定のメッセージが調整アプリケーション300によって受信された後の短い時間インターバルの間、その特定のメッセージのコピーがキャッシュ320にローカルに保管でき、キャッシュ320からアクセスできる。一部の実施形態では、調整を保留中のメッセージは、その特定のメッセージのコピーがキャッシュ320からローカルに入手できる場合、時間インターバルに基づいてGen−1メッセージ314と分類できる。調整アプリケーション300によって受信され、Gen−1メッセージ314と分類されるメッセージは、アーカイブ140に配信され、および/またはアーカイブ140によって処理されたと期待されるメッセージと一致する可能性がある。加えて、メッセージのコピーがキャッシュ320から入手可能な間、I/0の節約が実現できる。様々な実施態様において、Gen−1メッセージ314に関して配信確認クエリが送信され、キャッシュ320の有効期間中にほとんどすべてのメッセージを処理しようと試みられる。
配信確認クエリへの肯定応答が特定のメッセージに関して受信されると、調整アプリケーション300は、そのメッセージがアーカイブされたことを確認し、そのメッセージをメッセージ記憶域310から削除してよい。調整アプリケーション300が特定のメッセージに関して否定応答を受信すると、その未確認のメッセージがアーカイブされたことが確認できるまで、その未確認のメッセージはメッセージ記憶域310内で維持され、可用性が保証される。
一部の実施形態では、調整を保留中のメッセージは、そのようなメッセージのアーカイブの確認の失敗に基づいて分類できる。特定のメッセージに関して否定応答が受信されると、調整アプリケーション300は、そのメッセージをGen−2メッセージ316と分類してよい。メッセージは、メッセージの遅延を解決するために必要な時間に基づいて、Gen−2メッセージ316と分類されたままでよい。調整アプリケーション300によってGen−2メッセージ316と分類される保留中メッセージは、遅延の問題が発生中の未確認のメッセージと一致する可能性がある。様々な実施形態によれば、Gen−2メッセージ316に関してクエリは発行されず、メールの遅延が解決できるように遅延される。
調整アプリケーション300によってGen−3メッセージ318と分類される保留中メッセージは、今は解決できる可能性のある遅延問題を有していた未確認のメッセージと一致する可能性がある。調整アプリケーション300は、Gen−3メッセージ318の1つまたは複数に関して再試行クエリを発行することができる。特定のメッセージに関して肯定応答が受信されると、調整アプリケーション300は、前に未確認だったメッセージがアーカイブされ、そのメッセージをメッセージ記憶域310から削除してよいことを確認できる。再試行クエリに関して否定応答が受信されると、その未確認のメッセージがアーカイブされたことが確認できるまで、その未確認のメッセージはメッセージ記憶域310内に残存し、可用性が保証される。
1つまたは複数のGen−3メッセージ318が確認できない場合、調整エージェント127は、Gen−3メッセージ318をアーカイブ140に再送信することにより、修復を行うことができる。特定のメッセージがアーカイブされたことが確認されるまで、その未確認のメッセージはメッセージ記憶域310に残存し、その可用性が保証される。調整アプリケーション300は未確認のGen−3メッセージ318をアーカイブ140に再送信でき、各未確認のメッセージのコピーをメッセージ記憶域310に保存しておくことができる。特定の未確認のメッセージがアーカイブ140に再送信された後、調整プロセスは、その特定のメッセージがアーカイブされたことが確認されるまで、再び開始できる。特定のメッセージが調整できない場合でも、メッセージがメッセージ記憶域310内に残存して、その可用性が保証されることが理解できるであろう。
図示されているように、eメールアプリケーション300は、本明細書で説明される調整および修復手法の一部または全部の実行を担当できる調整および修復ロジック330を含んでよい。図3に示された例では、調整および修復ロジック330は、調整すべきメッセージを受信するロジック332、調整を保留中のメッセージを分類するロジック334、アーカイブクエリを発行するロジック336、アーカイブされたメッセージの確認のためのロジック338、確認されたメッセージを削除するロジック340、および未確認のメッセージの修復のためのロジック342を含む。
一部の実施態様では、調整および修復ロジック330は、eメールサーバー110上の調整エージェント127の一部として調整アプリケーション300内に存在してよい。しかし、調整および修復ロジック330は、説明される実施形態によれば、代替または追加で、1つまたは複数のタイプのコンピューター読み取り可能記憶域メディア上の様々な場所に保管されるコンピューター実行可能な命令として表す(embody)ことができる。
図3に示された例は、特定のロジックセットを含んでいるが、調整および修復ロジック330は、一般的な機能の例示的実施態様を提供していることが理解できよう。ロジックのシーケンスは、特に断りがなければ、必ずしも、提示された順に実行される必要はないことを理解されたい。加えて、調整および修復ロジック330は、特定のシーケンスのステップを実行するように説明されることがあるが、代替的実施形態によれば、他のシーケンスのステップも実行できる。その上、調整および修復ロジック330によって実行される一部の個別のステップは、その個別のステップに適した様々なシーケンスで実行できる複数のサブステップを含んでよい。さらに、特定の実施態様に応じて、調整および修復ロジック330によって追加ステップが実行されてもよいし、いくつかのステップが省略されてもよい。
図4は、様々な実施形態を実施するのに適した調整の世代を示すダイアグラム400の一実施形態を示している。図1〜図3を参照すると、一部の実施態様では、調整を保留しているメッセージは、調整アプリケーション300によって調整の世代に分類でき、調整アプリケーション300は、eメールサーバー110に存在する調整エージェント127によって実施できる。しかし、実施形態はそのような実施態様に限定されない。さらに、用語「分類(categorize)」または「世代(generation)」(およびそれらの派生語)は、説明される実施形態によれば、いずれか適切な手法、またはメッセージのグループを指す場合があることが理解できよう。一部のオペレーティングシステムまたは一部のアプリケーションは、メッセージの区分け(classification)またはメッセージのグループを指す場合、用語「分類」または「世代」を使用しない場合があるが、そのようなシナリオも、説明される実施形態によってカバーされるように意図されている。
図示されているように、調整を保留中のメッセージは、対応する時間インターバル(T0〜T3)に応じて、世代0(Gen−0)、世代1(Gen−1)、世代2(Gen−2)、および世代3(Gen−3)のメッセージと分類できる。この例では、メッセージは、メッセージに関連付けられた時間が時間インターバルT0内の場合、Gen−0メッセージとして、時間が時間インターバルT1内の場合、Gen−1メッセージとして、時間が時間インターバルT2内の場合、Gen−2メッセージとして、時間がT3の間の場合、Gen−3メッセージとして区分けできる。一部の実施形態は時間インターバル(T0〜T3)に関連付けられた特定の例示的値を説明することがあるが、他の適切な値も使用できることを理解されたい。また、説明される実施形態によれば、メッセージは他の方法で分類できることも理解できよう。
様々な実施態様において、特定のメッセージに関連付けられる時間は、その特定のメッセージを含むジャーナルレポートのコピーが受信された以降に経過した時間の長さと一致する可能性がある。例えば、特定のメッセージに関連付けられる時間は、その特定のメッセージが入ったジャーナルレポートのコピーが調整エージェント127によって受信された時、および/またはその特定のメッセージがメッセージ記憶域310に保管された時であってよい。他の実施形態では、メッセージに関連付けられる時間は、メッセージがアーカイブ140に送信された時間に基づいてよい。その時間は、ジャーナルレポートのコピーに含むことができる。
特定のメッセージがジャーナルレポートのコピーで調整エージェント127によって受信された後、オリジナルのジャーナルレポートがアーカイブ140に配信されて、および/またはアーカイブ140によって処理されるために短い時間インターバルが必要な場合がある。したがって、一部の実施形態では、調整を保留中のメッセージは、アーカイブ140に関連付けられた配信待機時間および/または処理待機時間などの待機時間に基づいて分類できる。
図4に示された例では、メッセージは、そのメッセージに関連付けられた時間が時間インターバルT0内の場合、Gen−0メッセージと分類できる。図示されているように、時間インターバルT0の長さは、オリジナルのジャーナルレポートがアーカイブ140に配信されるための、期待されるSLA(level agreement:レベルアグリーメント)、またはΔSLA(latency:待機時間)と一致する可能性がある。一般的に、時間インターバルΔSLAは、比較的短い時間、例えば、約5分である。
様々な実施形態によれば、時間インターバルΔSLAは、アーカイブ140に送信されるメッセージの配信待機時間および/または処理待機時間に基づいてよい。一部の実施形態では、時間インターバルΔSLAは、ほとんどのジャーナルレポートがアーカイブ140に配信されるために要される、想定または観察された時間の長さであってよい。また、時間インターバルΔSLAは、アーカイブ140が契約しているサービスのレベルおよび/またはパフォーマンスのための時間を指定するベンダーSLAによって定義されてよい。場合によっては、時間インターバルΔSLAは、アーカイブ140によって提供される情報に基づいてもよい。例えば、一部の実施態様では、調整エージェント127は、期待されるSLAまたはメッセージを処理するための待機時間などの特定の構成情報を入手するためにアーカイブ140にクエリすることができる。
図示されているように、時間インターバルT0はΔSLAと一致してよく、ΔSLAが経過した後で終了してよい。様々な実施態様において、特定のメッセージは、時間インターバルT0の間で、メッセージに関連付けられた時間から、例えば、その特定のメッセージが入ったジャーナルレポートのコピーが調整エージェント127によって受信された時、および/またはそのメッセージがメッセージ記憶域310に保管された時からΔSLAが経過するまで、Gen−0メッセージと分類できる。したがって、調整エージェント127によって受信され、Gen−0と分類されるメッセージは、アーカイブ140に最近送信されたメッセージと一致する可能性がある。
特定のメッセージが調整エージェント127によって受信された後の短い時間インターバルの間、調整すべき、そのメッセージのコピーがキャッシュ320にローカルに保管でき、キャッシュ320からアクセスできる。したがって、一部の実施形態では、調整を保留中のメッセージは、この時間インターバル、キャッシュ320に関連付けられたキャッシュ有効期間(ΔCache)に基づいて分類できる。一般的に、キャッシュ有効期間ΔCacheは、期待される待機時間ΔSLAより長くなるであろうし、場合によっては、長くなる必要がある。一部の実施形態では、キャッシュ有効期間ΔCacheは、約10分であってよい。
キャッシュ有効期間ΔCacheは、一般的に、RAM 206など、システム上の使用可能なRAMに正比例して変化する。例えば、キャッシュ有効期間ΔCacheが10分のeメールサーバー110では、キャッシュ有効期間ΔCacheは、通常、RAMを2倍にすれば2倍になる。したがって、ΔCache時間インターバルは、通常、他の時間インターバルのほとんど、例えば、時間インターバルΔSLAなどより、はるかに変わりやすい。時間インターバルΔSLAは、約5分の傾向があり、変化するのは比較的困難である。RAMと線形の関係があるため、キャッシュ有効期間ΔCacheは、調整エージェント127を実行するサーバー(複数可)にRAMを追加することにより、容易に増やすことができる。これにより、キャッシュ有効期間ΔCacheは、必要な場合には、SLA時間インターバルを楽に超えることができ、I/Oを節約することができる。
図4に示された例では、メッセージは、メッセージに関連付けられた時間が時間インターバルT1内の場合、Gen−1メッセージとして区分けできる。図示されているように、時間インターバルT1の長さは、ΔSLAの有効期限切れ後で、キャッシュ有効期間ΔCacheの有効期限切れ前の時間ウィンドウと一致する可能性がある。様々な実施態様において、特定のメッセージは、時間インターバルT1の間で、メッセージに関連付けられた時間から、例えば、その特定のメッセージが入ったジャーナルレポートのコピーが調整エージェント127によって受信された時、および/またはそのメッセージがメッセージ記憶域310に保管された時からキャッシュ有効期間ΔCacheが経過するまで、Gen−1メッセージと分類できる。したがって、調整エージェント127によって受信され、Gen−1と分類されるメッセージは、アーカイブ140に配信され、および/またはアーカイブ140によって処理されたと期待されるメッセージと一致する可能性がある。
様々な実施形態において、クエリがメッセージの分類に応じて発行できる。例えば、クエリは、調整プロセスのパフォーマンスを最適化するため、およびアーカイブ140に発行されるクエリの数を最小にするために、調整の世代に基づいて発行できる。
調整エージェント127によって受信され、Gen−0と分類されるメッセージは、アーカイブ140に最近送信されたメッセージと一致する可能性がある。様々な実施形態によれば、Gen−0と分類された保留中のメッセージに関して調整エージェント127はクエリを発行しない。例えば、ΔSLAが経過する前にジャーナルレポートの処置に関するクエリがアーカイブ140に送信された場合、結果は、おそらく、否定応答(Nak)になるであろう。したがって、T0の間にGen−0メッセージに関してクエリの発行は行われず、クエリの発行は、ΔSLAの有効期限切れまで遅延されてもよい。
調整エージェント127によって受信され、Gen−1と分類されるメッセージは、アーカイブ140に保管されたと期待されるメッセージと一致する可能性がある。加えて、メッセージのコピーがキャッシュ320から入手できる場合、I/Oの節約が実現できる。しかし、キャッシュ有効期間(ΔCache)の有効期限切れ後、メッセージのコピーはキャッシュ320から削除されてよく、I/Oの節約は、もはや不可能になる。様々な実施形態において、最初のクエリは、Gen−1と分類された、保留中のメッセージに関して送信される。そのような実施形態では、調整エージェント127は、時間インターバルT1の間、ほとんどすべてのメッセージを処理しようと試みてよい。時間インターバルT1は、キャッシュ有効期間ΔCacheに基づき、その有効期限切れまで続いてよい。したがって、調整エージェント127は、アーカイブ140に保管されたと期待されるメッセージに関してクエリを発行し、メッセージをキャッシュ320からアクセスすることによりI/Oの節約を実現できるので、調整プロセスのパフォーマンスは最適化できる。
時間インターバルT1の間、調整エージェント127は、アーカイブ140の調整アプリケーション146に連絡して、1つまたは複数のGen−1メッセージのメッセージIDを含む最初のクエリを発行することができる。最初のクエリは調整アプリケーション146を介してアーカイブ140によって受信でき、クエリ内で識別されたメッセージのそれぞれがアーカイブ140によって受信され、完全に保管されたかの判定を行うことができる。クエリ内で識別されたメッセージのすべてが完全に保管されたと判定した後、アーカイブ140は、調整アプリケーション146を介して、各メッセージが保管されたことを表す肯定応答(Ack)を応答することができる。特定のメッセージに関して肯定応答が受信されると、調整エージェント127は、メッセージがアーカイブされたことを確認し、そのメッセージをローカルのメッセージ記憶域310から削除することができる。
しかし、場合によっては、クエリ内で識別されたメッセージの1つまたは複数がアーカイブ140によって保管されていないと判定されることがある。例えば、アーカイブ140は、クエリが受信された時点で特定のメッセージを受信していないことがあり得る。そのような場合には、アーカイブ140は、調整アプリケーション146を介して、保管されていないメッセージを識別する否定応答(Nak)を応答することができる。調整エージェント127によって発行される最初の配信確認クエリは、アーカイブ140に保管されたと期待されるメッセージに関してであるため、否定応答を受信することは、典型的なメッセージ配信および処理の遅延、またはより深刻な問題を表している可能性がある。調整エージェント127が特定のメッセージに関してアーカイブ140から否定応答を受信すると、その未確認のメッセージがアーカイブされたことが確認できるまで、その未確認のメッセージはメッセージ記憶域310内で維持され、可用性が保証される。
特定のメッセージに関して否定応答が受信されると、調整エージェント127は、そのメッセージをGen−2と分類してよい。したがって、一部の実施形態では、調整を保留中のメッセージは、そのようなメッセージのアーカイビングの確認の失敗に基づいて分類することができる。メッセージのアーカイビングが確認できない場合、典型的なメッセージ配信および処理の遅延が発生していて、遅延が解決できるための追加の時間が必要である場合の可能性がある。
図4に示された例では、メッセージは、メッセージに関連付けられた時間が時間インターバルT2内の場合、Gen−2メッセージと分類できる。図示されているように、時間インターバルT2の長さは、ΔlssueResolution(問題解決SLA)時間インターバルと一致する可能性がある。様々な実施形態によれば、時間インターバルΔlssueResolutionは、メッセージの遅延を解決するために必要な時間に基づいてよい。例えば、時間インターバルΔlssueResolutionは、ほとんどのメッセージの遅延の問題が、通常のコースで自動訂正によって、および/または遅延の原因になっている問題を修正するための手動介入によって解決されるために要される、想定または観察された時間の長さであってよい。一般的に、時間インターバルΔlssueResolutionは、比較的、より長い時間、例えば、約5時間である。
調整を保留中のメッセージは、メッセージの遅延を解決するための時間インターバルに基づいて分類できる。理論上、Gen−2またはGen−3としてのメッセージの分類は、稀な発生であることが理解できよう。様々な実施態様において、特定のメッセージは、時間インターバルT2の間で、時間インターバルΔlssueResolutionが経過するまで、Gen−2メッセージと分類でき、その後、Gen−3と分類できる。例えば、特定の未確認のメッセージは、その特定の未確認のメッセージが入ったジャーナルレポートのコピーが調整エージェント127によって受信された時から、および/またはその未確認のメッセージがメッセージ記憶域310に最初に保管された時から時間インターバル(ΔCache+ΔlssueResolution)が経過するまで、Gen−2と分類できる。あるいは、特定の未確認のメッセージは、その特定の未確認のメッセージに関する最初の配信確認クエリが送信された時から時間インターバルΔlssueResolutionが経過するまで、Gen−2と分類できる。
調整エージェント127によってGen−2と分類される保留中メッセージは、遅延の問題が発生中の未確認のメッセージと一致する可能性がある。様々な実施形態によれば、Gen−2と分類された保留中メッセージに関して調整エージェント127によってクエリは発行されない。例えば、ΔlssueResolutionが経過する前にジャーナルレポートの処置に関する再試行クエリが送信されると、そのクエリは、おそらく、もう1つの否定応答(Nak)が応答されるという結果になるだろう。したがって、T2の間にGen−2メッセージに関してクエリの発行は行われず、クエリの発行は、ΔlssueResolutionの有効期限切れまで遅延される。
様々な実施形態において、Gen−3メッセージと分類されるメッセージは、TO+T1+T2より古いメッセージを含んでよい。一部の実施形態では、例えば、Gen−3と分類されるメッセージは、現時点より前の時間インターバル(ΔCache+ΔlssueResolution)の前に送信されたすべてのメッセージにわたる。調整エージェント127によってGen−3と分類される保留中メッセージは、この時点で解決される可能性のある遅延の問題があった未確認のメッセージと一致する可能性がある。
メールの遅延が解決されるように時間インターバルΔlssueResolutionが経過するのを許容した後、調整エージェント127は、Gen−3と分類された1つまたは複数の未確認のメッセージに関して再試行クエリを発行することができる。時間インターバルT3の間、例えば、調整エージェント127は、アーカイブ140の調整アプリケーション146に連絡して、1つまたは複数のGen−3メッセージのメッセージIDを含む再試行クエリを発行することができる。一部の実施形態では、調整エージェント127は、保留中のGen−3メッセージの一部または全部に関して再試行クエリを定期的に発行することができる。例えば、調整エージェント127はアーカイブ140の調整アプリケーション146に24時間ごとに連絡して、現時点より前の時間インターバル(ΔCache+ΔlssueResolution)の前に既に送信されていたすべてのGen−3メッセージに関するすべてのメッセージIDを含む再試行クエリを発行することができる。
再試行クエリは調整アプリケーション146を介してアーカイブ140によって受信でき、再試行クエリ内で識別されたメッセージのそれぞれが今はアーカイブ140によって受信され、完全に保管されたかの判定を行うことができる。再試行クエリ内で識別されたGen−3メッセージのすべてが完全に保管されたと判定されると、アーカイブ140は、調整アプリケーション146を介して、各メッセージが保管されたことを表す肯定応答(Ack)を応答することができる。特定のメッセージに関して肯定応答が受信されると、調整エージェント127は、以前は未確認のメッセージがアーカイブされたことを確認し、そのメッセージをローカルのメッセージ記憶域310から削除することができる。
しかし、再試行クエリ内で識別されたメッセージの1つまたは複数が保管されていないと判定された場合、アーカイブ140は、調整アプリケーション146を介して、保管されていないメッセージを識別する否定応答(Nak)を応答することができる。調整エージェント127が特定のメッセージに関してアーカイブ140から否定応答を受信すると、その未確認のメッセージがアーカイブされたことが確認できるまで、その未確認のメッセージはメッセージ記憶域310内に残存し、可用性が保証される。
一部の実施形態では、再試行クエリに対する否定応答がGen−3メッセージに関して受信されると、調整エージェント127は、最大待機時間しきい値に達したかを判定できる。最大待機時間しきい値に達していない場合、調整は、アーカイブ140の調整アプリケーション146に定期的に連絡して、最大待機時間しきい値に達するまで、その未確認のメッセージに関してさらなる再試行クエリを発行することができる。
他の実施形態では、再試行クエリに対する否定応答がGen−3メッセージに関して受信されると、調整エージェント127は、再試行の試みの最大数に達したかを判定できる。再試行の試みの最大数に達していない場合、調整は、アーカイブ140の調整アプリケーション146に定期的に連絡して、再試行の試みの最大数に達するまで、その未確認のメッセージに関してさらなる再試行クエリを発行することができる。
メッセージが確認できない場合、調整エージェント127は、その未確認のメッセージをアーカイブ140に再送信することにより、未確認のメッセージの修復を行うことができる。一部の実施形態では、調整エージェント127は、最大待機時間または再試行の試みの最大数に達した場合、その未確認のメッセージの修復を行うことができる。他の実施形態では、最大待機時間または再試行の試みの最大数がないことがあり、調整エージェント127は、1回の再試行の試みが失敗すると、修復を開始することがある。例えば、Gen−3メッセージに関する1回目の再試行の試みが失敗した場合、調整エージェント127は、アーカイブ140から否定応答を受信すると直ちにメッセージの修復を開始することができる。
特定のメッセージがアーカイブされたことが確認されるまで、その未確認のメッセージはメッセージ記憶域310内に残存し、可用性が保証される。様々な実施形態によれば、調整エージェント127は、未確認のメッセージをアーカイブ140に再送信することができ、その未確認のメッセージのコピーをメッセージ記憶域310内に保持することができる。未確認のメッセージがアーカイブ140に再送信された後、その特定のメッセージがアーカイブされたことが確認されるまで、調整プロセスは再び開始できる。
特定のメッセージが数回の再送信の試みの後でも調整できない場合、介入が必要になることがある。様々な実施形態によれば、特定の回数の再送信の試みの失敗など、修復が失敗すると、調整エージェント127は警告を生成して、送信することができる。例えば、調整が数回の再送信の試みの後で失敗すると、生成中のeメールシステムの管理者に、その問題を知らせ、問題を解決するために何らかの手動のプロセスが必要であることを知らせる警告を送信することができる。特定のメッセージが調整できない場合でも、そのメッセージはメッセージ記憶域310内に残存し、可用性が保証されることが理解できよう。
図5は、様々な実施形態を実施するのに適したメッセージフロー500の一実施形態を示している。図示されているように、メッセージフロー500は、eメールサーバー110とアーカイブ140の間のメッセージ501〜509の交換に関与できる。一部の実施態様では、メッセージ501〜509は、上述のように、ジャーナルエージェント125、調整エージェント127、ジャーナルアプリケーション144、および調整アプリケーション146によって送信および受信できる。しかし、実施形態はそのような実施態様に限定されない。さらに、図5に示された例は特定のメッセージ・セットを含んでいるが、メッセージフロー500は、一般的な機能の例示的な実施態様を示していることが理解できよう。代替的または追加のメッセージが含まれてよいこと、および特定の実施態様に応じて一部のメッセージは省略できることを理解されたい。
図示されているように、eメールサーバー110は、ジャーナルエージェント125を介して、ジャーナルレポート501をアーカイブ140に送信する。様々な実施態様において、ジャーナルレポート501は、ジャーナリング条件のセットに基づいて作成できる。例えば、eメールメッセージがeメールサーバー110によって受信者に送信される場合、ジャーナルエージェント125は、そのeメールメッセージがジャーナリングの条件を満たしているかを判定できる。条件が満たされていて、ジャーナリングが適用される場合、ジャーナルエージェント125は、eメールメッセージをジャーナルレポート501としてパッケージ化する。
ジャーナルレポート501は、例えば、アーカイブ140用のジャーナリング条件、およびメッセージのメッセージID、受信者の識別名、およびメッセージの他のトランスポートデータを含むメタデータを満たしたeメールメッセージのコピーを含んでよい。eメールサーバー110は、eメールメッセージを受信者に送信し、ジャーナルレポート501をジャーナルエージェント125を介してアーカイブ140に送信する。ジャーナルレポート501は、アーカイブ140に、例えば、SMTPによるeメールで送信できる。
様々な実施形態によれば、ジャーナルレポート501が作成されると、ジャーナルエージェント125は、ローカルメールボックス、またはメッセージ記憶域310などの保留エリアへの保管用にジャーナルレポートのコピー502も調整エージェント127に送信する。ジャーナルレポートのコピー502は、調整すべきメッセージを含み、そのメッセージは、受信者に送信され、アーカイブ140に送信される同じメッセージのコピーで構成されてよい。ジャーナルレポートのコピー502は、メッセージのメッセージID、受信者の識別名、およびメッセージの他のトランスポートデータを含むメタデータも含んでよい。
上述のように、一部の実施態様では、保留エリアに保管された調整を保留中のメッセージは複数の調整の世代に分類できる。様々な実施形態によれば、調整を保留中のメッセージは、調整すべきメッセージのコピーがキャッシュ320からローカルに入手できる場合、アーカイブ140に関連付けられた待機時間、メッセージのアーカイビングの確認の失敗、メッセージの遅延を解決するための時間インターバルに基づいて、または他の方法で分類できる。そのような実施態様では、調整プロセスのパフォーマンスを最適化し、アーカイブ140に発行されるクエリの数を最小にするために、メッセージの分類に応じてクエリが発行できる。
図5に示された例では、調整エージェント127は、アーカイブ140の調整アプリケーション146に連絡して、構成クエリ503を送信することができる。様々な実施態様において、構成クエリ503は、期待されるSLAまたはメッセージを処理するための待機時間などの特定の構成情報をアーカイブ140に要求するWebサービスクエリを含んでよい。構成クエリ503は、調整アプリケーション146を介してアーカイブ140で受信できる。アーカイブ140は、構成クエリ503に対して、調整アプリケーション146を介して、要求された構成情報を含む構成応答504を応答する。
図示されているように、eメールサーバー110は調整エージェント127を介して1つまたは複数のクエリを調整アプリケーション146に発行し、アーカイブ140での特定のメッセージの着信および保管を保証することができる。様々な実施形態において、調整エージェント127は、アーカイブ140に連絡し、アーカイブ140に送信されたメッセージが完全に保管されたかを問い合わせ、アーカイブ140でのメッセージの保管を確認するための非同期の調整プロセスを実行することができる。アーカイブ140が所与のメッセージに関する保管を確認できない場合、調整エージェント127は、アーカイブ140に再度問い合わせるための一連のステップを、後刻、実行することができる。アーカイブ140が保管をどうしても確認しない場合、調整エージェント127はメッセージのローカルコピーを維持し、そのコピーが、表示、印刷、保存などに使用できる。
図5に示された例では、調整エージェント127はアーカイブ140の調整アプリケーション146に連絡して、配信確認クエリ505を送信することができる。様々な実施態様において、配信確認クエリ505は、ΔSLAの有効期限切れ後の時間インターバルT1の間に送信できる。配信確認クエリ505は、例えば、1つまたは複数のGen−1メッセージのメッセージIDを含むことができる。調整エージェント127によって受信され、Gen−1と分類されるメッセージは、アーカイブ140に保管されたと期待されるメッセージと一致する可能性がある。加えて、メッセージのコピーがキャッシュ320から入手でき、I/Oの節約が実現できる。
配信確認クエリ505は調整アプリケーション146を介してアーカイブ140によって受信でき、配信確認クエリ505内で識別されたメッセージのそれぞれがアーカイブ140によって受信され、完全に保管されたかの判定を行うことができる。その判定に基づいて、アーカイブ140は、配信確認クエリ505に対して、調整アプリケーション146を介して配信確認クエリ応答506を応答することができる。様々な実施態様において、配信確認クエリ応答506は、時間インターバルT1の間に送信でき、1つまたは複数のGen−1メッセージのメッセージIDを含むことができる。
配信確認クエリ505内で識別されたメッセージのすべてが完全に保管されたと判定された場合、アーカイブ140は、調整アプリケーション146を介して、各メッセージが保管されたことを表す肯定応答(Ack)を含む配信確認クエリ応答506を応答することができる。配信確認クエリ応答506が肯定応答を含んでいる場合、調整エージェント127は、メッセージがアーカイブされたことを確認し、そのメッセージをローカルのメッセージ記憶域310から削除することができる。
配信確認クエリ505内で識別されたメッセージの1つまたは複数がアーカイブ140によって保管されていないと判定された場合、アーカイブ140は、調整アプリケーション146を介して、保管されていないメッセージを識別する否定応答(Nak)を含む配信確認クエリ応答506を応答することができる。調整エージェント127が否定応答を含む配信確認クエリ応答506を受信すると、その未確認のメッセージがアーカイブされたことが確認できるまで、その未確認のメッセージはメッセージ記憶域310内で維持され、可用性が保証される。
1つまたは複数のメッセージが未確認の場合、調整エージェント127は、アーカイブ140の調整アプリケーション146に連絡して、再試行クエリ507を送信する。様々な実施態様において、再試行クエリ507は、メールの遅延が解決されるように時間インターバルΔlssueResolutionが経過するのを許容した後の時間インターバルT3の間に送信できる。再試行クエリ507は、1つまたは複数のGen−3メッセージのメッセージIDを含むことができる。調整エージェント127によってGen−3と分類される保留中メッセージは、今は解決できる可能性のある遅延問題を有していた未確認のメッセージと一致する可能性がある。
再試行クエリ507は調整アプリケーション146を介してアーカイブ140によって受信でき、再試行クエリ507内で識別されたメッセージのそれぞれがアーカイブ140によって受信され、完全に保管されたかの判定を行うことができる。その判定に基づいて、アーカイブ140は、再試行クエリ507に対して、調整アプリケーション146を介して再試行クエリ応答508を応答することができる。様々な実施態様において、再試行応答508は、時間インターバルT3の間に送信でき、1つまたは複数のGen−3メッセージのメッセージIDを含むことができる。
再試行クエリ507内で識別されたメッセージのすべてが完全に保管されたと判定された場合、アーカイブ140は、調整アプリケーション146を介して、各メッセージが保管されたことを表す肯定応答(Ack)を含む配信確認クエリ応答508を応答することができる。再試行クエリ応答508が肯定応答を含んでいる場合、調整エージェント127は、メッセージがアーカイブされたことを確認し、そのメッセージをローカルのメッセージ記憶域310から削除することができる。
再試行クエリ507内で識別されたメッセージの1つまたは複数がアーカイブ140によって保管されていないと判定された場合、アーカイブ140は、調整アプリケーション146を介して、保管されていないメッセージを識別する否定応答(Nak)を含む再試行クエリ応答508を応答することができる。調整エージェント127が否定応答を含む再試行クエリ応答508を受信すると、その未確認のメッセージがアーカイブされたことが確認できるまで、その未確認のメッセージはメッセージ記憶域310内で維持され、可用性が保証される。
一部の実施形態では、否定応答を含む再試行クエリ応答508が受信されると、調整エージェント127は、最大の待機時間しきい値および/または試みの最大数に達するまで、さらなる再試行クエリを発行することができる。他の実施形態では、調整エージェント127は、1回の再試行の試みが失敗すると直ちに修復を開始することがある。
メッセージが確認できない場合、調整エージェント127は、その未確認のメッセージをアーカイブ140に再送信することにより、未確認のメッセージの修復を行うことができる。図示されているように、一部の実施形態では、調整エージェント127は、再送信メッセージ509をジャーナルアプリケーション144に送信することにより、未確認のメッセージの修復を行うことができる。他の実施形態では、調整エージェント127は、再送信メッセージ509をアーカイブ140への再送信用にジャーナルエージェント125に送信することにより、未確認のメッセージの修復を行うことができる。
再送信メッセージ509は、未確認のメッセージのコピーを含むことができ、例えば、SMTPによるジャーナルレポートeメールメッセージとしてアーカイブ140に送信できる。様々な実施態様において、再送信メッセージ509を送信すると、アーカイブ140に送信されたオリジナルジャーナルレポート501が再生される。また、調整エージェント127は、未確認のメッセージのコピーをメッセージ記憶域310内にも保存しておく。
再送信メッセージ509が送信された後、その特定のメッセージがアーカイブされたことが確認されるまで、調整プロセスは再び開始できる。特定のメッセージが数回の再送信の試みの後でも調整できない場合、調整エージェント127は警告を生成して、管理者に警告を送信することができる。
様々な実施形態によれば、メッセージフロー500は、eメールサーバー110とアーカイブ140の間で通信するための調整プロトコルに従った1つまたは複数のメッセージの交換に関与できる。調整プロトコルは、例えば、WebサービスのプロトコルおよぶWebサービスのスキーマを使用するWebサービスとして実施できる。一部の実施形態では、調整プロトコルは、SOAP(Simple Object Access Protocol)通信プロトコルおよびアプリケーション間の通信用のプロシージャーに従ってXMLドキュメントを伝達するように実施できる。Webサービスとして実施される場合、調整プロトコルは、インターネットなどのコンピューターネットワークを介して、HTTP、HTTPS、SMTP、FTPなどの通信プロトコルに従って伝達できるように設計された、プラットフォームおよび言語に依存しない様々なフォーマットを使用することができる。調整プロトコルは、有利なことには、ファイヤウォールが通常はHTTPトラフィックを許可し、多くのアーカイブが、管理者がログインして、アーカイブされたコンテンツに検索を実行できるようにしたHTTPフロントエンドを既に提供しているので、Webサービスとして実施できることが理解できよう。
一部の実施形態では、調整プロトコルのクエリおよび応答メッセージは、XMLドキュメントとして実装できるWebサービスのクエリおよび応答を含んでよい。クエリおよび応答XMLドキュメントは、XMLネームスペース(xmlns)、XMLスキーマのインスタンス(xsi)、XMLスキーマ定義(xsd)拡張ファイル名などのXMLスキーマおよび属性を使用して実装できる。一部の実施態様において、クエリおよび応答XMLドキュメントは、SOAPエンベロープならびに呼び出しおよび応答情報が入ったSOAPボディーを含むSOAPメッセージを含んでよい。
以下は、Webサービスの調整プロトコルに従って実装される構成クエリ503および構成応答504の1つの非限定的な例を示している。この例では、構成クエリ503は、期待されるSLA、またはメッセージを処理するための待機時間など、特定の構成情報を入手するように要求している。
Figure 2011526131
応答:
SLAは「0年0月0日0時間10分0秒」である。サポートされるバージョンは1.0および1.5である。
Figure 2011526131
以下は、Webサービスの調整プロトコルに従って実装される配信確認クエリ505および配信確認応答506の1つの非限定的な例を示している。この例では、配信確認クエリ505は、アーカイブアカウントbank_customer@ehs.comに、示された時間(「Z」は、XMLスキーマではUTCを表す)に送信された2つのメッセージの状態を要求している。
Figure 2011526131
応答:
メッセージ待機時間は、最初のメッセージについては9分15秒であり、2番目のメッセージについては8分12秒である。
Figure 2011526131
一部の実施形態は、Webサービスのプロトコルに従って調整プロトコルを実施すると説明できるが、他のプロトコル、例えば、限定ではないが、RPC(Remote Procedure Call:リモートプロシージャーコール)プロトコル、eメールメッセージングプロトコル、TCP(Transmission Control Protocol:トランスミッションコントロールプロトコル)などのインターネットプロトコル、REST(Representational State Transfer)プロトコル、RSS(Really Simple Syndication)などのWebフィードプロトコル、および/または任意の他の適切な同期または非同期プロトコルも使用できることが理解できよう。
上述の実施形態に関する動作は、1つまたは複数のロジックフローを参照してさらに説明できる。代表的なロジックフローは、特に断りがなければ、必ずしも、提示された順、または任意の特定の順に実行される必要はないことを理解されたい。その上、ロジックフローに関して説明される様々な活動は、シリアルに、またはパラレルに実行できる。ロジックフローは、説明された実施形態の1つまたは複数のハードウェア要素および/またはソフトウェア要素、あるいは所与の設計上またはパフォーマンス上の制約セットについて所望されるような代替的要素を使用して実行できる。例えば、ロジックフローは、ロジックデバイス(例えば、汎用または専用コンピューター)による実行用のロジック(例えば、コンピュータープログラムの命令)として実行できる。
図6は、様々な実施形態を実行するのに適したロジックフロー600の一実施形態を示している。ロジックフロー600は、本明細書で説明される1つまたは複数の実施形態によって実行される動作の一部または全部を表すことができる。
図示されているように、ロジックフロー600は、調整すべきメッセージを受信するステップ(ブロック610)を含んでよい。様々な実施態様において、調整すべきメッセージは、eメールサーバー110によって保管用にアーカイブ140に送信されたメッセージと一致する可能性がある。一部の実施態様では、例えば、調整すべきメッセージは、保管用にアーカイブ140に送信されたメッセージのコピーを含むことができる。調整すべきメッセージは、eメールサーバー110によってアーカイブ140に送信されたジャーナルレポート501と一致するジャーナルレポートのコピー502に入れて受信できる。ジャーナルレポートのコピー502は、受信者に送信され、保管用にアーカイブ140に送信された同じメッセージのコピーを含んでよい。
ロジックフロー600は、受信されたメッセージを調整用に分類するステップ(ブロック620)を含んでよい。様々な実施形態において、調整すべきメッセージは、アーカイブ140に関連付けられた待機時間と一致する時間インターバル、調整すべきメッセージのコピーがローカルキャッシュ320に入っている場合の時間インターバル、および遅延の問題を解決するための時間インターバルなど、1つまたは複数の時間インターバルに基づいて分類できる。調整すべきメッセージは、配信確認クエリへの否定応答を受信したことに基づいても分類できる。
ロジックフロー600は、調整用のメッセージの分類に応じて配信確認クエリをアーカイブに発行するステップ(ブロック630)を含んでよい。様々な実施形態において、配信確認クエリは、アーカイブ140の待機時間に基づいて遅延してよい。一部の実施態様では、配信確認クエリは、Webサービスのプロトコルに従ってアーカイブ140に送信できる。
ロジックフロー600は、サーバーに送信されるメッセージのアーカイビングを確認するステップ(ブロック640)を含んでよい。様々な実施形態において、調整すべきメッセージは、アーカイブ140に送信されたメッセージが保管されたことが確認されるまで、メッセージ記憶域310などの保留エリアに保管される。アーカイブ140でのメッセージの保管を確認した後、調整すべきメッセージはメッセージ記憶域310から削除できる。配信確認クエリへの否定応答が受信されると、最大待機時間および/または試みの最大数に達するまで、再試行クエリをアーカイブ140に送信できる。
ロジックフロー600は、未確認のメッセージを修復するステップ(ブロック650)を含んでよい。様々な実施形態において、再試行クエリへの否定応答を受信した後、調整すべきメッセージをアーカイブに再送信できる。未確認のメッセージがアーカイブ140に再送信された後、調整プロセスは、その特定のメッセージがアーカイブされたことが確認されるまで、再び開始できる。特定のメッセージが調整できない場合でも、メッセージがメッセージ記憶域310内に残存して、その可用性が保証されることが理解できるであろう。
ロジックフロー600は特定のシーケンスのステップを示している可能性があるが、代替的実施形態によれば、他のシーケンスのステップも実行できることが理解できよう。その上、ロジックフロー600の一部の個々のステップは複数のサブステップを含むことが可能で、その複数のサブステップは、その個別のステップに適した様々なシーケンスで実行されてよい。さらに、特定の実施態様に応じて、追加のステップが追加されてもよいし、または一部のステップは除去されてもよい。
図7は、様々な実施形態用のロジックを保管するのに適した製品700の物品の図を示している。図示されているように、製品700の物品は、ロジック704を保管するための記憶域メディア702を含んでよい。記憶域メディア702の例には、電子データを保管できる1つまたは複数のタイプのコンピューター読み取り可能記憶域メディア、例えば、揮発性メモリまたは不揮発性メモリ、取り外し可能または取り外し不可メモリ、消去可能または消去不可メモリ、書き込み可能または再書き込み可能メモリなどを挙げることができる。ロジック704の例には、様々なソフトウェア要素、例えば、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータープログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、プロシージャー、ソフトウェアインターフェイス、API(Application Program Interface:アプリケーションプログラムインターフェイス)、命令セット、コンピューティングコード、コンピューターコード、コードセグメント、コンピューターコードセグメント、語、値、記号、またはそれらの任意の組合せを挙げることができる。
一実施形態では、例えば、製品700の物品および/またはコンピューター読み取り可能記憶域メディア702は、コンピューターによって実行されると、説明された実施形態に応じた方法および/または動作をコンピューターに実行させる、実行可能なコンピュータープログラムの命令を含むロジック704を保管することができる。コンピューターの例には、説明された実施形態に応じたコンピューティング機能および/または通信機能を有する任意の適切なコンピューティングデバイスを挙げることができる。例示的なコンピューティングデバイスとしては、限定でないが、モバイルデバイス、パーソナルデジタルアシスタント、モバイルコンピューティングデバイス、スマートフォン、携帯電話、ハンドセット、単方向ページャー、双方向ページャー、メッセージングデバイス、コンピューター、PC(パーソナルコンピューター)、デスクトップコンピューター、ラップトップコンピューター、ノートブックコンピューター、ハンドヘルドコンピューター、サーバー、サーバーアレイまたはサーバーファーム、Webサーバー、ネットワークサーバー、インターネットサーバー、ワークステーション、ミニコンピューター、メインフレームコンピューター、スーパーコンピューター、ネットワーク機器、Web機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースのシステム、民生用電子機器、プログラマブル民生用電子機器、テレビ、デジタルテレビ、セットトップボックス、ワイヤレスアクセスポイント、基地局、加入者局、モバイル加入者センター、無線ネットワークコントローラー、ルーター、ハブ、ゲートウェイ、ブリッジ、スイッチ、マシン、またはそれらの組合せを挙げることができる。
実行可能なコンピュータープログラム命令には、ソースコード、コンパイル型コード、解釈型コード、実行可能コード、静的コード、動的コードなど、任意の適切なタイプのコードを挙げることができる。実行可能なコンピュータープログラム命令は、コンピューターに特定の機能を実行するように指示するための事前定義されたコンピューター言語、作法または構文に従って実装できる。命令は、C#、C、C++、Java(登録商標)、BASIC、Perl、Matlab、Pascal、Visual BASIC、アセンブリー言語およびその他など、任意の適切なハイレベル、ローレベル、オブジェクト指向、ビジュアル、コンパイル型および/または解釈型のプログラミング言語を使用して実装できる。
様々な実施形態がハードウェア要素、ソフトウェア要素または両方の組合せを使用して実施できる。ハードウェア要素の例には、ロジックデバイスに対して前に挙げられた例のすべて、さらにマイクロプロセッサ、回路、回路素子(例えば、トランジスタ、抵抗器、キャパシター、インダクターなど)、集積回路、ロジックゲート、レジスター、半導体デバイス、チップ、マイクロチップ、チップセットなどを挙げることができる。ソフトウェア要素の例には、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータープログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、プロシージャー、ソフトウェアインターフェイス、API(Application Program Interface:アプリケーションプログラムインターフェイス)、命令セット、コンピューティングコード、コンピューターコード、コードセグメント、コンピューターコードセグメント、語、値、記号、またはそれらの任意の組合せを挙げることができる。実施形態をハードウェア要素および/またはソフトウェア要素を使用して実施するかの決定は、所与の実施態様に対して所望されるような、所望の計算レート、パワーレベル、熱耐性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバス速度、および他の設計上またはパフォーマンス上の制約など、任意の数の要因に応じて異なることがある。
一部の実施形態は、「結合」および「接続」という表現をそれらの派生語と共に使用して説明されることがある。これらの用語は、必ずしも相互に同義語として意図されているわけではない。例えば、一部の実施形態は、2つ以上の要素が互いに直接的な物理的または電気的接触状態にあることを表すために用語「接続」および/または「結合」を使用して説明されることがある。しかし、用語「結合」は、2つ以上の要素が互いに直接的な接触状態にないが、それでも互いに協力する、または相互作用することも意味することがある。
強調しておくが、「本開示の要約」は、37 C.F.R.セクション1.72(b)に準拠し、それにより求められるとおり、要約は、読者が技術的開示の性質を迅速に確認できるように記載されている。要約は、請求項の範囲または意味を解釈または限定するために使用してはならないということを理解したものとして提出されている。加えて、前述された「発明を実施するための形態」では、開示を簡素化する目的で様々な特徴が1つの実施形態にまとめられていることが理解できよう。開示のこの方法は、特許請求される実施形態が、各請求項で明示的に記載されるよりも多くの特徴を必要とする意図を反映すると解釈してはならない。むしろ、以下の請求項の範囲が反映しているように、発明の主題は、1つの開示された実施形態のすべての特徴より少ない特徴にある。したがって、以下の特許請求の範囲は、本明細書により、「発明を実施するための形態」に組み込まれるものとし、各請求項はそれ自体で個別の実施形態として存在する。添付の特許請求の範囲では、用語「含む(including)」および「その場合(in which)」は、それぞれの用語「含む、備える、有する(comprising)」および「その場合(wherein)」のプレーン英語の均等物として使用される。その上、用語、「第1」、「第2」、「第3」などは単にラベルとして使用され、それぞれのオブジェクトに数の要件を課すようには意図されていない。
主題は、構造的特徴および/または方法的行為に固有の文言で記載されているが、添付の特許請求の範囲で定義される主題は、上述の固有な特徴または行為に必ずしも限定されないことを理解されたい。むしろ、上述の固有な特徴および行為は、請求項を実施する形の例として開示されている。

Claims (15)

  1. サーバー(110)によって保管用にアーカイブ(140)に送信されるメッセージと一致する、調整すべきメッセージを受信するステップ(610)と、
    前記受信されたメッセージを調整用に分類するステップ(620)と、
    調整用の前記メッセージの分類に従って配信確認クエリを前記アーカイブに発行するステップ(630)と、
    前記サーバーから前記アーカイブに送信された前記メッセージが前記アーカイブに保管されたかを前記配信確認クエリへの応答に基づいて確認するステップ(640)と
    を含むことを特徴とする方法。
  2. 前記サーバーによって保管用に前記アーカイブに送信されるジャーナルレポートと一致するジャーナルレポートのコピーを受信するステップを含むことを特徴とする請求項1に記載の方法。
  3. 期待される待機時間を含む構成情報を前記アーカイブに要求する構成クエリを発行するステップを含むことを特徴とする請求項1に記載の方法。
  4. 前記調整すべきメッセージを1つまたは複数の時間インターバルに基づいて分類するステップを含むことを特徴とする請求項1に記載の方法。
  5. 前記時間インターバルは、前記アーカイブに関連付けられた待機時間と一致する時間インターバル、前記調整すべきメッセージのコピーがローカルキャッシュに入っている場合の時間インターバル、および遅延の問題を解決するための時間インターバルのうちの1つまたは複数を含むことを特徴とする請求項4に記載の方法。
  6. 前記調整すべきメッセージを、前記配信確認クエリへの否定応答を受信したことに基づいて分類するステップを含むことを特徴とする請求項1に記載の方法。
  7. 前記配信確認クエリへの否定応答を受信した後、再試行クエリを発行するステップを含むことを特徴とする請求項1に記載の方法。
  8. 前記再試行クエリへの否定応答を受信した後、前記調整すべきメッセージを前記アーカイブに再送信するステップを含むことを特徴とする請求項7に記載の方法。
  9. 前記調整すべきメッセージを保管するステップと、
    前記配信確認クエリへの肯定応答を受信した後、前記調整すべきメッセージを削除するステップと
    を含むことを特徴とする請求項1に記載の方法。
  10. 前記配信確認クエリをWebサービスのプロトコルに従って前記アーカイブに発行することを特徴とする請求項1に記載の方法。
  11. 実行されると、システムが請求項1から10のいずれか1つの方法を実施できるようにする命令が入っている、マシンまたはコンピューター読み取り可能記憶域メディアを含むことを特徴とする製品。
  12. ジャーナルレポートのコピーをジャーナルエージェント(125)から受信するためのメッセージ受信コンポーネント(332)であって、前記ジャーナルレポートの前記コピーは、前記ジャーナルエージェントによって保管用にアーカイブ(140)に送信されるメッセージと一致する、調整すべきメッセージを含む、メッセージ受信コンポーネントと、
    前記受信されたメッセージを調整用に分類する分類コンポーネント(334)と、
    サーバー(110)から前記アーカイブに送信された前記メッセージが前記アーカイブに保管されたかを判定するための配信確認クエリを前記アーカイブに発行するためのクエリ発行コンポーネント(336)と
    を含むことを特徴とする装置。
  13. 前記配信確認クエリへの応答を前記アーカイブから受信するためのクエリ応答受信コンポーネント(338)であって、前記クエリ発行コンポーネントは、前記配信確認クエリへの否定応答を受信した後、再試行クエリを発行する、クエリ応答受信コンポーネントと、
    前記再試行クエリへの否定応答を受信した後、前記調整すべきメッセージを前記アーカイブに再送信するための修復コンポーネント(342)と
    を含むことを特徴とする請求項12に記載の装置。
  14. 前記ジャーナルエージェントを含むことを特徴とする請求項12に記載の装置。
  15. 前記配信確認クエリはWebサービスのクエリを含むことを特徴とする請求項12に記載の装置。
JP2011516383A 2008-06-27 2009-05-28 通信アーカイブに対する調整および修復 Withdrawn JP2011526131A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/147,668 US8732265B2 (en) 2008-06-27 2008-06-27 Reconciliation and remediation with communication archives
US12/147,668 2008-06-27
PCT/US2009/045471 WO2009158107A2 (en) 2008-06-27 2009-05-28 Reconciliation and remediation with communication archives

Publications (1)

Publication Number Publication Date
JP2011526131A true JP2011526131A (ja) 2011-09-29

Family

ID=41445174

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011516383A Withdrawn JP2011526131A (ja) 2008-06-27 2009-05-28 通信アーカイブに対する調整および修復

Country Status (16)

Country Link
US (1) US8732265B2 (ja)
EP (1) EP2291818B1 (ja)
JP (1) JP2011526131A (ja)
KR (1) KR101683305B1 (ja)
CN (1) CN102077237B (ja)
AU (1) AU2009262858B2 (ja)
BR (1) BRPI0913620B1 (ja)
CA (1) CA2724676C (ja)
IL (1) IL209050A (ja)
MX (1) MX2010014038A (ja)
MY (1) MY156639A (ja)
RU (1) RU2507580C2 (ja)
SG (1) SG192448A1 (ja)
TW (1) TWI486873B (ja)
WO (1) WO2009158107A2 (ja)
ZA (1) ZA201007874B (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732265B2 (en) * 2008-06-27 2014-05-20 Microsoft Corporation Reconciliation and remediation with communication archives
US20100030821A1 (en) * 2008-07-31 2010-02-04 Research In Motion Limited Systems and methods for preserving auditable records of an electronic device
US9324055B2 (en) 2011-12-08 2016-04-26 Microsoft Technology Licensing, Llc Techniques to manage remote events
US8959425B2 (en) 2011-12-09 2015-02-17 Microsoft Corporation Inference-based extension activation
US9679163B2 (en) * 2012-01-17 2017-06-13 Microsoft Technology Licensing, Llc Installation and management of client extensions
US9449112B2 (en) 2012-01-30 2016-09-20 Microsoft Technology Licensing, Llc Extension activation for related documents
US9256445B2 (en) 2012-01-30 2016-02-09 Microsoft Technology Licensing, Llc Dynamic extension view with multiple levels of expansion
WO2014005629A1 (en) * 2012-07-04 2014-01-09 Nec Europe Ltd. Adaptation of radio resources allocation in an intelligent transport system enabled cellular mobile network and method for operating such network
KR20140095712A (ko) * 2013-01-25 2014-08-04 삼성전자주식회사 알림 제어 방법 및 그 전자 장치
US10158450B2 (en) * 2014-09-29 2018-12-18 Telefonaktiebolaget Lm Ericsson (Publ) Method and first node for handling a feedback procedure in a radio communication
US10148607B2 (en) 2015-09-28 2018-12-04 Quest Software Inc. Electronic-messaging system interceptor forwarding client notifications
US10942974B2 (en) 2017-10-20 2021-03-09 Bank Of America Corporation System for synchronous document captures into an asynchronous archive and document-level archiving reconciliation
CN113485868A (zh) * 2021-02-04 2021-10-08 厦门蓝极档案技术有限公司 一种残损档案修复方法及装置

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757669A (en) 1995-05-31 1998-05-26 Netscape Communications Corporation Method and apparatus for workgroup information replication
US5813009A (en) 1995-07-28 1998-09-22 Univirtual Corp. Computer based records management system method
US6240414B1 (en) * 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
US6052709A (en) * 1997-12-23 2000-04-18 Bright Light Technologies, Inc. Apparatus and method for controlling delivery of unsolicited electronic mail
US7047532B1 (en) 1998-11-13 2006-05-16 The Chase Manhattan Bank Application independent messaging system
US6405252B1 (en) * 1999-11-22 2002-06-11 Speedera Networks, Inc. Integrated point of presence server network
US7117246B2 (en) 2000-02-22 2006-10-03 Sendmail, Inc. Electronic mail system with methodology providing distributed message store
US7043486B2 (en) 2001-09-20 2006-05-09 Wellogix, Inc. Process and system for tracking versions of field documentation data collection configurations in a complex project workflow system
US8015204B2 (en) 2001-10-16 2011-09-06 Microsoft Corporation Scoped access control metadata element
US6859865B2 (en) * 2001-11-09 2005-02-22 Nortel Networks Limited System and method for removing latency effects in acknowledged data transfers
US7310654B2 (en) * 2002-01-31 2007-12-18 Mirapoint, Inc. Method and system for providing image incremental and disaster recovery
US7130313B2 (en) * 2002-02-14 2006-10-31 Nokia Corporation Time-slice signaling for broadband digital broadcasting
US7334019B2 (en) 2002-07-18 2008-02-19 Ebay Inc. Delivering messages to message servers
KR20040081289A (ko) 2003-03-14 2004-09-21 (주)에이스넷 수신확인이 가능한 전자메일 시스템 및 그 방법
TW200426621A (en) * 2003-05-30 2004-12-01 Hon Hai Prec Ind Co Ltd System and method for in-time-alarm of abnormal database backup
US7412489B2 (en) 2003-08-21 2008-08-12 Ameriprise Financial, Inc. Method and system for electronic archival and retrieval of electronic communications
US20050086384A1 (en) 2003-09-04 2005-04-21 Johannes Ernst System and method for replicating, integrating and synchronizing distributed information
US7289974B2 (en) 2003-09-05 2007-10-30 Sap Ag System and method for data reconciliation
TWI231910B (en) * 2003-10-09 2005-05-01 Accton Technology Corp Electronic mail backup and control management system
US7587455B2 (en) 2004-05-14 2009-09-08 Mirapoint Software, Inc. Method for mailbox migration
US7769709B2 (en) * 2004-09-09 2010-08-03 Microsoft Corporation Method, system, and apparatus for creating an archive routine for protecting data in a data protection system
US7552179B2 (en) 2004-09-20 2009-06-23 Microsoft Corporation Envelope e-mail journaling with best effort recipient updates
US7895158B2 (en) * 2004-12-27 2011-02-22 Solace Systems Inc. Data logging in content routed networks
CN1842001A (zh) * 2005-03-31 2006-10-04 都科摩(北京)通信技术研究中心有限公司 用于无线分布式网络的媒体接入控制方法及装置
RU47116U1 (ru) * 2005-04-06 2005-08-10 Оао Акб "Автобанк-Никойл" Система поддержки распределенного документооборота
US7457540B2 (en) * 2005-04-29 2008-11-25 Fujitsu Limited System and method for shaping traffic in optical light-trails
US7600126B2 (en) 2005-05-27 2009-10-06 Microsoft Corporation Efficient processing of time-bounded messages
EP1739905B1 (en) * 2005-06-30 2008-03-12 Ixos Software AG Method and system for management of electronic messages
US20070067403A1 (en) * 2005-07-20 2007-03-22 Grant Holmes Data Delivery System
US20070072588A1 (en) 2005-09-29 2007-03-29 Teamon Systems, Inc. System and method for reconciling email messages between a mobile wireless communications device and electronic mailbox
US20070106771A1 (en) 2005-11-10 2007-05-10 International Business Machines Corporation Reconciliation of independently updated distributed data
US7716180B2 (en) 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
JP2007226750A (ja) 2006-02-27 2007-09-06 Murata Mach Ltd 電子メール装置及びそのプログラムと、電子メールシステム
US20070214218A1 (en) * 2006-03-08 2007-09-13 Ward Patricia A Publication management system
US8219920B2 (en) 2006-08-04 2012-07-10 Apple Inc. Methods and systems for managing to do items or notes or electronic messages
US20080086261A1 (en) * 2006-09-15 2008-04-10 Icebreaker, Inc. Location-based social interaction network
US8732265B2 (en) * 2008-06-27 2014-05-20 Microsoft Corporation Reconciliation and remediation with communication archives

Also Published As

Publication number Publication date
EP2291818A2 (en) 2011-03-09
RU2507580C2 (ru) 2014-02-20
CN102077237B (zh) 2013-06-12
ZA201007874B (en) 2012-02-29
RU2010153328A (ru) 2012-06-27
IL209050A (en) 2015-08-31
EP2291818A4 (en) 2013-08-28
AU2009262858B2 (en) 2014-05-22
US8732265B2 (en) 2014-05-20
BRPI0913620B1 (pt) 2019-12-24
AU2009262858A1 (en) 2009-12-30
IL209050A0 (en) 2011-01-31
SG192448A1 (en) 2013-08-30
US20090327352A1 (en) 2009-12-31
KR101683305B1 (ko) 2016-12-06
BRPI0913620A2 (pt) 2015-10-20
MX2010014038A (es) 2011-02-15
CA2724676A1 (en) 2009-12-30
CA2724676C (en) 2016-08-02
TW201005638A (en) 2010-02-01
CN102077237A (zh) 2011-05-25
WO2009158107A3 (en) 2010-04-22
EP2291818B1 (en) 2022-02-09
WO2009158107A2 (en) 2009-12-30
TWI486873B (zh) 2015-06-01
KR20110034615A (ko) 2011-04-05
MY156639A (en) 2016-03-15

Similar Documents

Publication Publication Date Title
JP2011526131A (ja) 通信アーカイブに対する調整および修復
US20090327354A1 (en) Notification and synchronization of updated data
US6687848B1 (en) Techniques for preventing information loss in a business to business message in an enterprise computer system
US9880982B2 (en) System and method for rendering presentation pages based on locality
US6959340B1 (en) Platform independent business to business messenger in an enterprise computer system
US9258377B2 (en) Publish information on website
US20100145932A1 (en) Automatic Discovery of Alternate Mailboxes
US7908514B2 (en) Minimizing data loss in asynchronous replication solution using distributed redundancy
US7007088B1 (en) Method and apparatus for providing an E-business audit trail in a distributed computing system
US20190303870A1 (en) Service for receiving obsolete web page copies
CN109286671A (zh) 物联网环境下订阅通知处理方法、装置、存储介质及设备
US20100205257A1 (en) Transport high availability via acknowledge management
US8903774B2 (en) Techniques for leveraging replication to provide rolling point in time backup with simplified restoration through distributed transactional re-creation
US20140379820A1 (en) Email address and telephone number unification systems and methods
US8484512B2 (en) Throttling non-delivery reports based on root cause
US8352553B2 (en) Electronic mail connector
US10091627B2 (en) Text message handshaking and integration
EP4272407A1 (en) Synchronization control of file folders in computing systems
CN113783666A (zh) 一种处理业务的方法和装置
CN116991603A (zh) 消息同步方法、设备及计算机可读存储介质
CN101175009A (zh) 电子看板文件中继传输系统及方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120330

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20121016