(57)【特許請求の範囲】
【請求項１】
コンピュータにより実施されるシステムであって、
外部電子メールサーバ、ローカル電子メールサーバ、及びリモート無線データ処理装置の間で電子メールメッセージを同期する電子メールサービスを実施するように構成される少なくともメモリ及びプロセッサと、
個々の待ち行列から成るタスク待ち行列であって、１つ又は複数の前記個々の待ち行列はタスクエントリを含み、前記１つ又は複数の個々の待ち行列は前記個々の待ち行列のうちの少なくとも１つの他の待ち行列とは異なる優先度レベルを表し、各タスクエントリは、前記外部電子メールサーバ及び／又は前記ローカル電子メールサーバ上のユーザ電子メールアカウントに関連付けられ、前記ユーザ電子メールアカウントに関連して実行されるタスクを表す、タスク待ち行列と、
メールキャッシュであって、
前記外部電子メールサーバ及び／又は前記ローカル電子メールサーバに格納された電子メールメッセージについての最後に知られた状態と、前記リモート無線データ処理装置に格納された前記電子メールメッセージについての現在のローカル状態との間の差異を保持し、
前記電子メールメッセージのメッセージ本文が前記リモート無線データ処理装置へとダウンロードされることに応答して、前記メールキャッシュから前記メッセージ本文を削除する、キャッシュ管理ポリシーを実施する
ように構成されるメールキャッシュと、
前記タスク待ち行列から前記電子メールメッセージに関連付けられる同期タスクを読み出し、前記同期タスクは、前記電子メールメッセージに対する第１の変更に関連付けられる第１の同期タスクと、前記第１の変更の後に生じる前記電子メールメッセージに対する第２の変更に関連付けられる第２の同期タスクとを含み、前記第２の同期タスクは前記第１の同期タスクに優先し、
前記外部電子メールサーバに格納される１つ又は複数の電子メールメッセージに関連付けられる、最後の同期より新しいメッセージの概要を問い合わせるように設定されるクイックスキャン同期モードを少なくとも使用することによって、前記最後の同期以後の前記外部電子メールサーバ上の変更を判断し、
前記電子メールメッセージに関連する前記第２の同期タスクを、前記電子メールメッセージに関連する前記第１の同期タスクを実行することなく実行して、前記外部電子メールサーバ、前記ローカル電子メールサーバ、及び前記リモート無線データ処理装置に格納されている電子メールメッセージを同期させる
ように構成されるシンクロナイザと、
を備える、システム。
【請求項２】
前記電子メールメッセージを同期させるために、前記シンクロナイザは、
前記ユーザ電子メールアカウントに対する認証データを使用して、前記外部電子メールサーバに接続し、
前記外部電子メールサーバと前記ローカル電子メールサーバとの間での前記電子メールメッセージについての同期の対立を識別し、
前記ローカル電子メールサーバ上の前記電子メールメッセージに対する変更を前記外部電子メールサーバにアップロードし、
前記外部電子メールサーバ上の前記電子メールメッセージに対する変更を前記ローカル電子メールサーバにダウンロードし、及び
前記電子メールメッセージに対する変更の通知を前記リモート無線データ処理装置に送信する
ようにさらに構成される、請求項１に記載のシステム。
【請求項３】
同期スケジュールに従って新しい同期タスクを前記タスク待ち行列の前記１つ又は複数の個々の待ち行列に追加するように構成されるスケジューラをさらに備える、請求項１に記載のシステム。
【請求項４】
前記スケジューラは、前記ユーザ電子メールアカウント内のアクティビティに基づいて前記同期スケジュールを調整するようにさらに構成される、請求項３に記載のシステム。
【請求項５】
前記スケジューラは、
前記ユーザ電子メールアカウントがアクティブである場合、同期頻度を増大させ、
前記ユーザ電子メールアカウントが非アクティブである場合、同期頻度を低減させる
ようにさらに構成される請求項４に記載のシステム。
【請求項６】
前記ユーザ電子メールアカウントにおける１つ又は複数の新規電子メールメッセージの受信に応答して、新しい同期タスクを前記タスク待ち行列の前記１つ又は複数の個々の待ち行列に追加するように構成される非同期新規電子メール通知受信器をさらに備える、請求項１に記載のシステム。
【請求項７】
前記電子メールメッセージに関連付けられるメタデータを格納する永続的構造記憶装置と、
前記電子メールメッセージの少なくともメッセージ本文を格納するメッセージ本文キャッシュと
を備える電子メールキャッシュをさらに備える、請求項１に記載のシステム。
【請求項８】
外部電子メールサーバ、ローカル電子メールサーバ、及びリモート無線データ処理装置の間で電子メールメッセージを同期させる方法であって、
タスクエントリをタスク待ち行列内に格納するステップであって、各タスクエントリは、前記外部電子メールサーバ及び／又は前記ローカル電子メールサーバ上のユーザ電子メールアカウントに関連付けられ、前記ユーザ電子メールアカウントに関連して実行されるタスクを表し、前記タスク待ち行列は個々の待ち行列を含み、１つ又は複数の前記個々の待ち行列は前記個々の待ち行列のうちの少なくとも１つの他の待ち行列とは異なる種類のタスクを表し、前記タスクエントリは、電子メールメッセージに対する第１の変更に関連付けられる第１のタスクエントリ及び前記第１の変更の後に生じる前記電子メールメッセージに対する第２の変更に関連付けられる第２のタスクエントリを含む、格納するステップと、
前記電子メールメッセージのメッセージ本文が前記リモート無線データ処理装置へとダウンロードされることに応答して、前記ローカル電子メールサーバにおけるメールキャッシュから前記メッセージ本文を削除する、キャッシュ管理ポリシーを実施するステップと、
前記タスク待ち行列の前記個々の待ち行列のうちの１つからタスクエントリを読み出すステップであって、該タスクエントリは、同期するユーザ電子メールアカウントの指示を含む、読み出すステップと、
前記ユーザ電子メールアカウントに対する認証データを使用して、前記外部電子メールサーバに接続するステップと、
前記外部電子メールサーバに格納される１つ又は複数の電子メールメッセージに関連付けられる、最後の同期より新しいメッセージの概要を問い合わせるように設定されるクイックスキャン同期モードを少なくとも使用することによって、前記最後の同期以後の前記外部電子メールサーバ上の変更を判断するステップと、
前記外部電子メールサーバと前記ローカル電子メールサーバとの間での前記電子メールメッセージについての同期の対立を識別するステップと、
前記ローカル電子メールサーバ上の前記電子メールメッセージに対する前記第２の変更を、前記電子メールメッセージに対する前記第１の変更をアップロードすることなく前記外部電子メールサーバにアップロードするステップであって、前記電子メールメッセージに対する前記第２の変更は前記電子メールメッセージに対する前記第１の変更に優先する、アップロードするステップと、
前記外部電子メールサーバ上の前記電子メールデータに対する変更を前記ローカル電子メールサーバにダウンロードするステップと、
前記電子メールメッセージに対する変更の通知を前記リモート無線データ処理装置に送信するステップと
を含む、方法。
【請求項９】
同期スケジュールに従って新しい同期タスクを前記タスク待ち行列の前記１つ又は複数の個々の待ち行列に追加するステップをさらに含む、請求項８に記載の方法。
【請求項１０】
前記ユーザ電子メールアカウント内のアクティビティに基づいて前記同期スケジュールを調整するステップをさらに含む、請求項９に記載の方法。
【請求項１１】
前記ユーザ電子メールアカウントがアクティブな場合、同期頻度を増大させるステップと、
前記ユーザ電子メールアカウントが非アクティブの場合、前記同期頻度を低減させるステップと
をさらに含む、請求項１０に記載の方法。
【請求項１２】
前記ユーザ電子メールアカウントにおける１つ又は複数の新規電子メールメッセージの受信に応答して、新しい同期タスクを前記タスク待ち行列の前記１つ又は複数の個々の待ち行列に追加するステップをさらに含む、請求項８に記載の方法。
【請求項１３】
前記電子メールメッセージに関連付けられるメタデータを追加のキャッシュに格納するステップと、
前記電子メールメッセージの少なくともメッセージ本文を前記メールキャッシュに格納するステップと
をさらに含む、請求項８に記載の方法。
【請求項１４】
コンピュータによって実行されると、該コンピュータに、
タスクエントリをタスク待ち行列内に格納するステップであって、各該エントリは、外部電子メールサーバ及び／又はローカル電子メールサーバ上のユーザ電子メールアカウントに関連付けられ、前記ユーザ電子メールアカウントに関連して実行されるタスクを表し、前記タスク待ち行列は個々の待ち行列を含み、１つ又は複数の前記個々の待ち行列は前記個々の待ち行列のうちの少なくとも１つの他の待ち行列とは異なる優先度レベル又は異なる種類のタスクを表し、前記タスクエントリは、電子メールメッセージに対する第１の変更に関連付けられる第１のタスクエントリ及び前記第１の変更の後に生じる前記電子メールメッセージに対する第２の変更に関連付けられる第２のタスクエントリを含む、格納するステップと、
前記電子メールメッセージのメッセージ本文が、前記ローカル電子メールサーバ及び／又は前記外部電子メールサーバと通信するリモート無線データ処理装置へとダウンロードされることに応答して、前記ローカル電子メールサーバにおけるメールキャッシュから前記メッセージ本文を削除する、キャッシュ管理ポリシーを実施するステップと、
前記タスク待ち行列の前記個々の待ち行列のうちの１つからタスクエントリを読み出すステップであって、該タスクエントリは、同期するユーザ電子メールアカウントの指示を含む、読み出すステップと、
前記ユーザ電子メールアカウントに対する認証データを使用して、前記外部電子メールサーバに接続するステップと、
前記外部電子メールサーバに格納される１つ又は複数の電子メールメッセージに関連付けられる、最後の同期より新しいメッセージの概要を問い合わせるように設定されるクイックスキャン同期モードを少なくとも使用することによって、前記最後の同期以後の前記外部電子メールサーバ上の変更を判断するステップと、
前記外部電子メールサーバと前記ローカル電子メールサーバとの間での前記電子メールメッセージについての同期の対立を識別するステップと、
前記ローカル電子メールサーバ上の前記電子メールメッセージに対する前記第２の変更を、前記電子メールメッセージに対する前記第１の変更をアップロードすることなく、前記外部電子メールサーバにアップロードするステップであって、前記電子メールメッセージに対する前記第２の変更は前記電子メールメッセージに対する前記第１の変更に優先する、アップロードするステップと、
前記外部電子メールサーバ上の前記電子メールメッセージに対する変更を前記ローカル電子メールサーバにダウンロードするステップと、
前記電子メールメッセージに対する前記変更の通知を、前記ローカル電子メールサーバ及び／又は前記外部電子メールサーバと通信する前記リモート無線データ処理装置に送信するステップと
を実行させるプログラムコードが格納されている、１つ又は複数のコンピュータ可読記憶媒体。
【請求項１５】
前記プログラムコードは、実行されると、前記コンピュータに、同期スケジュールに従って新しい同期タスクを前記タスク待ち行列の前記１つ又は複数の個々の待ち行列に追加するステップをさらに実行させる、請求項１４に記載の１つ又は複数のコンピュータ可読記憶媒体。
【請求項１６】
前記プログラムコードは、実行されると、前記コンピュータに、前記ユーザ電子メールアカウント内のアクティビティに基づいて前記同期スケジュールを調整するステップをさらに実行させる、請求項１５に記載の１つ又は複数のコンピュータ可読記憶媒体。
【請求項１７】
前記プログラムコードは、実行されると、前記コンピュータに、
前記ユーザ電子メールアカウントがアクティブな場合、同期頻度を増大させるステップと、
前記ユーザ電子メールアカウントが非アクティブの場合、同期頻度を低減させるステップと
をさらに実行させる、請求項１６に記載の１つ又は複数のコンピュータ可読記憶媒体。
【請求項１８】
前記プログラムコードは、実行されると、前記コンピュータに、前記ユーザ電子メールアカウントにおける１つ又は複数の新規電子メールメッセージの受信に応答して、新しい同期タスクを前記タスク待ち行列における前記１つ又は複数の個々の待ち行列に追加するステップをさらに実行させる、請求項１４に記載の１つ又は複数のコンピュータ可読記憶媒体。
【請求項１９】
前記プログラムコードは、実行されると、前記コンピュータに、前記電子メールメッセージに関連付けられるメタデータを追加のキャッシュに格納するステップと、
前記電子メールメッセージの少なくともメッセージ本文を前記メールキャッシュに格納するステップと
をさらに実行させる、請求項１４に記載の１つ又は複数のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は全般的にデータ処理システムの分野に関する。特に、本発明は無線データサービス内で電子メールメッセージをキャッシュする改善されたアーキテクチャに関するものである。
【背景技術】
【０００２】
電子メールは今日の世界においてなくてはならない道具となってきた。ビジネスの世界では、事実上従業員すべてが電子メールに頼っていて、顧客と外部的に且つ他の従業員と内部的に通信している。その上、ほとんどの電子メールユーザは、少なくとも1つの個人的な電子メールアカウントを有している。ユーザのインターネットプロバイダー（例えば、Ｐａｃｉｆｉｃ  Ｂｅｌｌ、ＡＴ＆Ｔ  Ｗｏｒｌｄｎｅｔ（商標）、Ａｍｅｒｉｃａ  Ｏｎｌｉｎｅ（商標）等）によって、又はインターネットウェブサイト（例えば、Ｙａｈｏｏ（商標）メール若しくはＨｏｔｍａｉｌ（商標））によって、その個人的な電子メールアカウントを提供することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
存在する一つの問題は、ユーザが複数の異なる電子メールアカウントの間で調整することを困難に感じる場合があることである。例えば、ユーザは仕事で一日中、会社の電子メールアカウントをチェックすることができるが、ユーザは個人の電子メールアカウントをチェックすることを覚えていなかったり覚えることができなかったりする。同様に、夜又は週末時の家では、ユーザは個人の電子メールアカウントにのみアクセスするかもしれない。その結果、ユーザが個人のアカウントから仕事仲間に電子メールを送る場合、ユーザは家に戻り個人の電子メールアカウントにログインするまで仕事仲間の返事を見直すことができない。逆に、ユーザが会社のアカウントから友人へ電子メールを送る場合、ユーザは仕事に戻って個人の電子メールアカウントにログインするまで友人の返事にアクセスすることができない。たとえユーザが同じ位置から両方の電子メールアカウントにアクセスすることができても、特に、ユーザのデスクトップコンピュータ及び／又は無線クライアント（例えば、Ｍｉｃｒｏｓｏｆｔ  Ｏｕｔｌｏｏｋ（商標）及びＬｏｔｕｓ  Ｎｏｔｅｓ（商標））上で２以上の異なるユーザエージェントを要求することができるとき、ユーザに対して２以上の異なる電子メールシステムにログインすることを要求するのは少々煩わしい。
【０００４】
上記の問題は、多数の電子メールシステムが異なった互換性のない電子メール規格で動作するという事実によってさらに悪化する。２つの最も一般的な電子メール規格が、Post Office Protocol３（「ＰＯＰ３」）及びインターネット・メッセージング・アクセス・プロトコル（「ＩＭＡＰ」）である。
【０００５】
ＰＯＰ３はインターネット電子メールアカウントに一般に使用されている。ＰＯＰ３サーバは、ユーザのログインによって電子メールメッセージがダウンロードされるまで、入ってくる電子メールメッセージを一時的に格納する。ユーザは、それらがダウンロードされるとすぐにその電子メールメッセージを消去するように、又はそれらが消去されるべきことをユーザが指示するまで待つようにそのサーバを構成することができる。ＰＯＰ３は、設定変更可能なオプションが制限されている比較的単純なプロトコルである。すべての未処理のメッセージ及び添付ファイルは、サーバ上の単一電子メールフォルダから、ユーザのクライアントコンピュータ又は無線装置（即ち、ユーザエージェントの「受信箱」）上の単一電子メールフォルダへダウンロードされる。メッセージは、一意のメッセージ識別コードに基づいて識別される。
【０００６】
ＩＭＡＰは、もう一つの一般的な電子メール規格で幾分より複雑であり、インターネットの電子メールアカウント及び会社の電子メールアカウントの両方に広く用いられる電子メール規格である。ＩＭＡＰ４が最新版である。ＰＯＰ３とは異なり、ＩＭＡＰ４は、フォルダ（例えば、受信箱、送信済メール、保存メール等）にメッセージを保管することが可能なメッセージデータベース、及びユーザ間で共有できる電子メールボックスを提供する。また、ＩＭＡＰは、多目的インターネットメール拡張機能（ＭＩＭＥ）による改善された統合を提供し、そのプロトコルは電子メールメッセージにファイルを添付するために用いられる（例えば、ユーザは添付ファイルがダウンロードされるのを自動的に受け入れ且つ待つ必要なしにメッセージヘッダのみを読むことができる）。
【課題を解決するための手段】
【０００７】
外部電子メールサーバ、ローカル電子メールサーバ、及び無線データ処理装置の間で電子メールメッセージを同期する、コンピュータにより実施されるシステム及び方法。例えば、システムの一実施の形態は、複数のタスクエントリで構成されるタスク待ち行列であって、各エントリは、外部電子メールサーバ及び／又はローカル電子メールサーバ上の特定のユーザ電子メールアカウントに関連付けられ、ユーザ電子メールアカウントに関連して実行されるタスクを表す、タスク待ち行列と、タスク待ち行列から同期タスクを読み取り、同期タスクを実行させて、外部電子メールサーバ、ローカル電子メールサーバ、及び無線データ処理装置に格納されている電子メールデータを同期させるシンクロナイザとを備える。
【０００８】
以下の図面と併せて以下の詳細な説明より、本発明をさらによく理解することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態による電子メールシステムのアーキテクチャを示す図である。
【図２】内部ＩＭＡＰアカウント及び外部ＰＯＰアカウントを含む本発明のより詳細な実施形態を示す図である。
【図３】本発明の一実施形態による、外部アカウントコードによる内部アカウントコードのマッピングを示す図である。
【図４】内部アカウント及び外部アカウントの両方がＩＭＡＰアカウントである電子メールシステムの実施形態を示す図である。
【図５】本発明の一実施形態による、グローバル識別コード（「ＧＩＤ」）の標準ＩＭＡＰ識別コードへのマッピングを示す図である。
【図６】電子メッセージをデータ処理装置へ配信する改善されたシステムの一実施形態を示す図である。
【図７】本発明の一実施形態による、ユーザデータベース内に維持されているユーザデータの集合を示す図である。
【図８】本発明の一実施形態において利用される未処理メッセージテーブルを示す図である。
【図９】本発明の一実施形態による処理を示す図である。
【図１０】本発明の一実施形態によるシステムアーキテクチャを示す図である。
【図１１】本発明の一実施形態による複数のタスク待ち行列を示す図である。
【図１２】本発明の一実施形態に利用されるシンクロナイザ及びメールキャッシュを示す図である。
【図１３】本発明の一実施形態による、アカウントを同期するために実施される方法を示す図である。
【図１４】リモートメール記憶装置、ローカルメール記憶装置、及びデータ処理装置の間で電子メールメッセージを同期するシステムの別の実施形態を示す図である。
【図１５】リモートメール記憶装置、ローカルメール記憶装置、及びデータ処理装置の間で電子メールメッセージを同期する方法の別の実施形態を示す図である。
【発明を実施するための形態】
【００１０】
この説明全体を通じて、説明のために、本発明の完全な理解を提供するために、多くの具体的な詳細が記載される。しかしながら、本発明をこれらの具体的な詳細のうちのいくつかなしで実施可能なことが当業者には理解されるであろう。他の場合では、本発明の基本原理を曖昧にしないように、既知の構造及び装置はブロック図形態で示される。
【００１１】
上述した問題に対処するために、本願の譲受人は、複数の電子メールアカウントの間で調整するシステムを開発した。このシステムの特定の態様は、「APPARATUS AND METHOD FOR COORDINATING MULTIPLE EMAIL ACCOUNTS」と題する米国特許第７，１５５，７２５号明細書及び「APPARATUS AND METHOD FOR DISTRIBUTING ELECTRONIC MESSAGES TO A WIRELESS DATA PROCESSING DEVICE USING A MULTI-TIERED QUEUING ARCHITECTURE」と題する米国特許第７，１６２，５１３号明細書（「従来技術特許」）に記載されている。これらの特許は、本願の譲受人に譲渡され、参照により本明細書に援用される。
【００１２】
従来技術特許に記載されているシステムについて、これより図１〜図９を参照して説明し、その後、内部電子メールアカウント及び外部電子メールアカウントからの電子メールのより効率的な調整、同期、及び管理を可能にする電子メールシステムに対する新規の改良を説明する。後述する本発明の実施形態は、ここでも、無線クライアント装置を使用しての実施に焦点を合わせるが、本発明の基本原理は、必ずしも無線の実施態様に限定されるものではない。
【００１３】
図１に全般的に示されるようなデータ処理サービス１００に対して本発明の実施形態を実行することができる。一実施形態において、サービス１００は、無線データ処理装置１０１と、例えば、電子メールサーバ１３０及び１３１並びにＷｅｂサーバ（図示せず）のような、無線装置１０１が通信する任意の外部サーバとの間でプロキシとして作用する。例えば、サービス１００によって、標準アプリケーション、マルチメディアコンテンツ及びデータを、無線装置１０１が正確に解釈できるフォーマットに変換することができる。サービス１００の一実施形態が、「PORTAL SYSTEM FOR CONVERTING REQUESTED DATA INTO A BYTECODE FORMAT BASED ON PORTAL DEVICE'S GRAPHICAL CAPABILITIES」と題する米国特許第６，７２１，８０４号明細書に記載されており、該特許文献は本願の譲受人に譲渡され、参照により本明細書に援用される。
【００１４】
図１に示された実施形態によれば、ユーザにはサービス１００上の内部電子メールアカウント１０２（例えば、１以上の電子メールサーバ上で維持される）が与えられる。本明細書において用いられる場合、「内部」とは、電子メールアカウントがサービス１００によって維持され制御される事実を言う。ユーザは、送信すべき内部電子メールアカウント１０２にアクセスし、且つ無線ネットワーク１２０を介してユーザ無線装置１０１から及び／又はクライアントコンピュータ１１０から（例えば、インターネットに通信結合されたパーソナルコンピュータ）電子メールメッセージを受信することができる。例えば、セルラーディジタルパケットデータ方式（「ＣＤＰＤ」）及び汎用パケット無線サービス（「ＧＰＲＳ」）をサポートするものを含む様々なネットワークのタイプを利用することができる。しかしながら、本発明の基本原理が任意の特定のタイプの無線ネットワーク１２０に限定されないことに留意すべきである。
【００１５】
内部電子メールアカウント１０２に加え、ユーザは様々な「外部」の電子メールアカウント１３０及び１３１を有することができる。ここで、「外部」とは、サービス１００によって直接的に維持されたり制御されたりしないという意味での外部である。上述したように、従来のシステムでは、ユーザは一般的には個々の電子メールアカウント１０２、１３０及び１３１のそれぞれに別個にログインすることを要求される。これに対して、本発明の一実施形態において、サービス１００がユーザの外部アカウント１３０及び１３１からメッセージを自動的に検索し、ユーザの内部電子メールアカウント１０２内にそのメッセージを格納する。よって、ユーザは単一のアカウント１０２からのメッセージの全てを単一のユーザエージェントを使用しながらアクセスすることができる。
【００１６】
図１に示された実施形態では、サービス１００に構成されるインタフェース１０４は、外部電子メールアカウント１３０及び１３１に周期的に問い合わせ、新規メッセージをチェックする。代替的に、又はそれに加えて、インタフェース１０４は、ユーザからのコマンドを受信した後にのみ、又はユーザが内部電子メールアカウント１０２にログインするたびに、外部アカウント１３０、１３１からメッセージを検索することができる。一実施形態において、ユーザは、新規電子メールメッセージが受信されたときはそれらをインタフェース１０４に自動的に転送するように、外部電子メールアカウント１３０、１３１を構成することができる。
【００１７】
インタフェース１０４が外部電子メールアカウント１３０、１３１からのメッセージを取り出すことができる前に、初めに、アカウントごとのサーバネットワークアドレス（例えば、mail.packbell.net）及び有効なユーザ認証データでインタフェース１０４をプログラムしなければならない。例えば、外部電子メールアカウント１３０、１３１は、インタフェース１０４へ電子メールメッセージを与える前に、一般的には、有効なユーザネーム及びパスワードを要求する。したがって、図１に示したように、ユーザは、まずそのインタフェースに外部電子メールアカウントデータ１０７を与えるように要求される場合がある。
【００１８】
外部電子メールアカウント１３０、１３１からの電子メールメッセージが内部電子メールアカウント１０２内へ格納されてくると、まさにそれらが内部アカウント１０２に最初から宛てられていたかのように、ユーザはそれらに対して様々な電子メール操作（例えば、返信、削除、保存メールフォルダへの移動等）を実行することができる。さらに、一実施形態において、インタフェース１０４は、メールアカウント更新を外部電子メールアカウント１３０、１３１へ送信する。例えば、ユーザが特定のメッセージを削除する場合、そのメッセージが削除されたという指示が外部電子メールアカウント１３０、１３１へ送信される。これによって、様々な電子メールアカウントの間でメッセージの一貫性が維持される。一実施形態において、ユーザは、内部アカウント１０２での操作が外部アカウント１３０、１３１に反映されるべきか否かの選択を、アカウントごとに行うことができる。
【００１９】
ＩＭＡＰプロトコル（例えば、ＩＭＡＰ４）を利用する内部電子メールアカウントと、ＰＯＰ３プロトコルを利用する外部電子メールアカウントとの間で、電子メールメッセージを調整するための具体的な一実施形態を図２に示す。これらの２つの具体的なプロトコルを参照してこの実施形態を説明するが、本発明の基本原理は様々な代替のメッセージングプロトコル（例えば、分散型メールシステムプロトコル（「ＤＭＳＰ」）、Ｘ.４００等）を用いて実施できることに留意すべきである。
【００２０】
この実施形態において、ＰＯＰフェッチ／更新インタフェース２０６がサービス１００上に構成され、１つ又は複数の外部ＰＯＰサーバ２１４からの電子メールメッセージをフェッチする。上述したように、外部ＰＯＰアカウント２１４上の新規電子メールメッセージ２３０を周期的に（例えば、１５分ごと）チェックするように、ＰＯＰフェッチ／更新インタフェース２０６をプログラムすることができる。さらに、ユーザは、ＰＯＰフェッチ／更新インタフェース２０６に、無線装置１０１又はクライアントコンピュータ１１０のいずれかから、任意の所定の時刻において新規メッセージをチェックするように命令することができる。
【００２１】
ＰＯＰフェッチ／更新インタフェース２０６は、新規メッセージをチェックするためにどのようにトリガされるかにかかわらず、トリガされると、外部ＰＯＰアカウント２１４へ、例えばユーザの電子メールアカウントネーム及びパスワード等の認証データをまず送信する。その認証データが外部ＰＯＰアカウント２１４によって受け入れられると、ＰＯＰアカウント２１４は、任意の新規電子メールメッセージを、ＰＯＰフェッチ／更新インタフェース２０６へ送信する。一実施形態において、ＰＯＰプロトコルがＰＯＰアカウント２１４からＰＯＰフェッチ／更新インタフェース２０６へファイルを送信するために用いられる。しかしながら、本発明の基本原理は、いかなるメッセージ伝送プロトコルにも限定されるものではない。
【００２２】
ユーザの外部ＰＯＰアカウントがどのように構成されるかに応じて、ＰＯＰフェッチ／更新インタフェース２０６へ送信されたメッセージは、送信されるとすぐに外部アカウント２１４から自動的に削除される場合もあるし、又はユーザがメッセージを削除すべきということをその後に示すまで、外部アカウント２１４上に保持される場合もある。
【００２３】
一実施形態において、ＰＯＰフェッチ／更新インタフェース２０６は、内部ＩＭＡＰアカウント２１０上の指定のフォルダへ新規電子メールメッセージを転送する。例えば、ユーザがＹａｈｏｏ  電子メールアカウント及びＷｏｒｌｄｎｅｔ  電子メールアカウントを有する場合、両アカウントからの新規電子メールメッセージを格納するために、そのユーザは、内部ＩＭＡＰアカウント２１０（例えば、それぞれ「Ｙａｈｏｏ  Ｍａｉｌ」及び「Ｗｏｒｌｄｎｅｔ  Ｍａｉｌ」）上に独立した２つのフォルダをセットアップすることができる（上述したように、ＩＭＡＰは電子メールメッセージフォルダのためのサポートを提供する）。
【００２４】
外部ＰＯＰアカウント２１４が、電子メールメッセージを検索した後でもそのメッセージを格納するように構成されている場合、各メッセージの２つのコピーが次の検索において存在することになる。１つは外部ＰＯＰアカウント２１４上のコピーであり、もう１つは内部電子メールデータベース２１１上のコピーである。このように、２つのアカウント間でよりよい調整を可能にするために、一実施形態においては、電子メールメッセージマッピングロジック２１２が、内部ＩＭＡＰアカウント２１０上に格納されているメッセージと、外部ＰＯＰアカウント２１４上に格納されているメッセージとの間のリンクを生成する。例えば、電子メールメッセージマッピングロジック２１２によって図３に示すような、内部電子メールメッセージ識別コード３０１を外部電子メールメッセージ識別コード３０２とマッピングするテーブルを生成することができる。操作においては、ユーザが特定の内部電子メールメッセージに関する操作を実行するたびに、電子メールメッセージマッピングロジック２１２は対応する外部電子メールメッセージが存在するか否かを判断する。その場合、電子メールメッセージマッピングロジック２１２は、ＰＯＰフェッチ／更新インタフェース２０６に通知し、ＰＯＰフェッチ／更新インタフェース２０６はその後、これに応じて外部ＰＯＰアカウント２１４を更新する。
【００２５】
例えば、図３を再度参照すると、ユーザが内部メッセージＩＤコード「folder=saved mail, uid=3361」を有するメッセージを削除する場合、電子メールメッセージマッピングロジック２１２は、外部メッセージＩＤコード「B881431776693cca7e41ccded 0f56613」を有する外部メッセージ番号４が、外部ＰＯＰサーバ２１４から削除されるべきということを、ＰＯＰフェッチ／更新インタフェース２０６に指示する。次に、ＰＯＰフェッチ／更新インタフェース２０６は、ＰＯＰ３「削除」コマンドを外部ＰＯＰアカウント２１４へ送信し、該メッセージは、メッセージ番号（例えば、「ＤＥＬＥ４」）を用いて識別される。この方法で、ユーザは単一のアカウントから幾つかの異なるメールアカウントを効率的に管理することができる。
【００２６】
ユーザは自身の無線装置１０１から内部電子メールアカウント２１０にアクセスすることができ、一実施形態において、無線装置１０１は電子メールプロキシ２０４経由でそのアカウントに接続する。ネットワークポータルアプリケーションに記載したように、一実施形態において、電子メールプロキシ２０４は、特定の無線装置１０１の能力に基づいて、電子メールメッセージ及び他のコンテンツ（例えば、ウェブページ、グラフィカル画像等）を一意的にフォーマットする。また、ユーザは、直接的に又はウェブインタフェース２０２（例えば、Ｙａｈｏｏ  ｍａｉｌ及びＨｏｔｍａｉｌにより提供されるウェブインタフェース等）を介してのいずれかで、クライアントデスクトップ又はノートブックコンピュータ１１０を用いて内部電子メールアカウント２１０にアクセスすることができる。
【００２７】
図４は、内部電子メールアカウント４１０及び外部電子メールアカウント４１４の両方がＩＭＡＰアカウントである実施形態を示している。外部ＩＭＡＰアカウント４１４は、電子メールフォルダのためのサポートを有することになるため、様々なレベルの電子メール調整が可能である。例えば、ユーザは、外部電子メールアカウント４１４上の指定のフォルダ内で見つかるメッセージのみ（例えば、「受信箱」フォルダからのみ）を検索するように、ＩＭＡＰフェッチ／更新インタフェース４０６を構成することができる。ユーザによって特定のフォルダが識別されると、内部アカウント４１０は、上述したのと同様な方法で外部アカウント４１４からのメッセージを検索することができる。例えば、メッセージが外部アカウント４１４から検索されると、内部アカウント４１０内で実行される電子メールメッセージマッピングロジック４１２は、（例えば、図３で全般的に示すように）各外部メッセージＩＤコードを内部メッセージＩＤコードと関連づける。次に、リモートアカウント４１４に対してメッセージ更新を送信するために、この関連付けを用いる。例えば、ユーザがメッセージを削除するとき、電子メールメッセージマッピングロジック４１２は、対応する外部メッセージが存在するか否かを（例えば、内部メッセージＩＤコードを使用したテーブル検索を実行することによって）判断する。対応する外部メッセージが存在する場合、電子メールメッセージマッピングロジック４１２は、外部ＩＤコードをＩＭＡＰフェッチ／更新インタフェース４０６に送信し、ＩＭＡＰフェッチ／更新インタフェース４０６は、その後、外部ＩＭＡＰアカウント４１４に「削除」コマンドを送信する（即ち、削除されるメッセージを外部ＩＤコードによって識別する）。
【００２８】
内部ＩＭＡＰアカウント及び／又は外部ＩＭＡＰアカウントを用いて動作する場合の一つの付加的な問題は、電子メールメッセージＩＤコードが各個々のＩＭＡＰフォルダ内でしか一意的でないことである。例えば、「受信箱」フォルダ及び「保存メール」フォルダの両方は、１から２０の範囲のＩＤコードを有する電子メールメッセージを含むことができる（即ち、同一ＩＤコードが異なる電子メールメッセージのために使用される）。さらに、或る電子メールメッセージを送信フォルダから宛先フォルダに移動するときには、該電子メールメッセージには新規ＩＤコードが（即ち、フォルダに既に格納されているメッセージのために用いられているＩＤコードに基づいて）与えられる。その結果、内部電子メールアカウント２１０、４１０に格納されているメッセージと、外部電子メールアカウント２１４、４１４に格納されているメッセージとの間で正確なマッピングを維持するために、或るメカニズムが提供されなければならない。
【００２９】
本発明の一実施形態において、複数のＩＭＡＰフォルダにわたってメッセージを正確に追跡するために、一意的なグローバルＩＤコード（「ＧＩＤ」）がＩＭＡＰアカウント２１０、４１０のすべてのメッセージのために生成される。標準型ＩＭＡＰ識別コードと異なり、メッセージのＧＩＤは、アカウント２１０、４１０上のそのメッセージを一意的に識別し、且つ１つのフォルダから次のフォルダへそのメッセージが移動される際に変化しない。図５のテーブルは、ＧＩＤの、標準型ＩＭＡＰ  ＩＤコードへの例示的なマッピングを記載している。一実施形態において、電子メールメッセージマッピングロジック２１２、４１２が、各電子メールメッセージのＧＩＤをリモートアカウント上の対応するＩＤコードに関連付ける。その結果、ユーザが内部アカウント２１０、４１０において、１つのフォルダから別のフォルダへファイルを移動する場合に、外部アカウント２１４、４１４上の対応するメッセージを依然として識別することができる。
【００３０】
幾つかの異なる方法でＧＩＤを生成し且つ保持することができる。一実施形態において、特定のメッセージに対する更新が行われるときはいつも、ＧＩＤマッピングが更新される。例えば、ＧＩＤ＝２０がＩＮＢＯＸ：２５に対応し、且つユーザがＩＮＢＯＸ：２５をＴｒａｓｈ：１２に移動させる場合、マッピングはこれに応じて更新される。この技法の利点の１つは、これによってＧＩＤによるメッセージの検索を早く行うことができるということである。
【００３１】
別の実施形態において、Ｘ−ＧＩＤ：２０のようなＸヘッダーが、メールメッセージの実際のヘッダーに挿入される。メッセージが移動される場合、ヘッダーはメッセージと共に移動する。この技法の利点の１つは、１つのフォルダから次のフォルダへそのメッセージを追跡するために要求される仕事量が少ないということである。
【００３２】
一実施形態において、ユーザが内部アカウント２１０、４１０からの電子メールメッセージに対して応答するとき、ヘッダー内の「ＦＲＯＭ：」フィールドが、該メッセージが送信された元々のアカウントを指示する。例えば、メッセージが元々は外部アカウント２１４、４１４へ送信されていた場合、応答が内部アカウントで生成されるという事実にもかかわらず、「ＦＲＯＭ：」フィールドがその外部アカウントアドレスを含む。
【００３３】
さらに、メッセージが内部アカウントから送信されたという指示をメッセージ内に含ませることもできる。例えば、メッセージが無線装置から送信されるときは、メッセージが「無線」装置から送信されたという指示を送信者の名前（例えば、“Scott Kister（無線）”scott.kister@danger.com）に追加することができ、これによりメッセージの真の出所が特定され、一方で同時に元々の電子メール受取人アドレスが保持される。一実施形態において、内部アカウント２１０、４１０でエンドユーザはこの指示を有効化又は無効化することができる。
【００３４】
図６は、無線データ処理装置１０１に対して電子メッセージを配信する電子メールシステムの別の実施形態を示している。本実施形態は、一般的に、ユーザデータベース６２５、ユーザデータベース６２５にアクセスするためのデータベースプロキシサーバ６２０、電子メールプロキシサーバ６１０、ディスパッチャ（dispatcher）サーバ６１５、及びメールサーバ６０５（又は代替的には別個のサーバ）上で実行されるメールエージェント６０６から成る。
【００３５】
図７に示されたユーザデータベース６２５の例示的な部分は、データ処理装置識別コード７０２に対するユーザ識別コード７０１のマッピングを含む。ユーザＩＤ／装置ＩＤのマッピングはサービス１００によって、所与のユーザに関して、電子メールメッセージ及び他のデータが送信されるべき特定の無線装置１０１を識別するために用いられる。さらに、ユーザデータベース６２５は、ユーザのアカウントネーム、無線装置１０１がそれを通じて通信する特定のディスパッチャ６１５を含むユーザのオンラインステータス、及びユーザに関連付けられる加入者識別モジュール（ＳＩＭ）識別コードを含む（ユーザは２つ以上のＳＩＭを保持することができる）。
【００３６】
ディスパッチャ６１５は、無線装置１０１とサービス１００との間で送信されるデータのための通信の中心点を形成する。一実施形態において、ディスパッチャ６１５は無線装置１０１と、サービス１００上に保持されている様々なプロキシサーバとの間のソケット接続（例えば、ＴＣＰソケット）を保持する。例えば、電子メールセッションのために、ディスパッチャ６１５は無線装置１０１と電子メールプロキシサーバ６１０との間のソケット接続を開き且つ保持する。同様に、他の無線アプリケーション（例えば、インスタントメッセージ、ウェブブラウジング等）のために、ディスパッチャ６１５は、無線装置１０１と適当なプロキシサーバ６２１（例えば、インスタントメッセージプロキシサーバ、ウェブプロキシサーバ等）との間のソケット接続を確立し且つ保持する。ユーザがサービス１００にログイン又はログアウトするごとに、ディスパッチャ６１５は、ユーザデータベース６２５内のユーザオンラインステータスをこれに応じて更新するために、ＤＢプロキシ６２０に通知する。さらに、無線ネットワーク１２０と、サービス１００が操作するローカルネットワークとの間に大きなバンド幅の差があることを鑑みて、ディスパッチャ６１５は、各個々のソケット接続を介して無線装置１０１へ送信されたデータ及び無線装置１０１から送信されたデータを一時的にバッファリングする。
【００３７】
メールサーバ６０５上で（又は別個のサーバ上で）実行されるメールエージェント６０６は、ユーザの電子メールアカウントに対する変化を絶えず追跡する。一実施形態において、エージェント６０６は、ユーザの受信箱を周期的にチェックし、ユーザが新規電子メールメッセージを受信したか否かを判断する。ユーザを宛先にした新規電子メールメッセージが到着するとき、メールエージェント６０６は、電子メールプロキシサーバ６１０に対して「新規電子メールメッセージ」警告を送信する。電子メールプロキシサーバ６１０は、その新規電子メールメッセージをＤＢプロキシサーバ６２０へ転送する。電子メールプロキシサーバは、その新規電子メールメッセージ警告のフォーマットを、標準フォーマット（例えば、ＩＭＡＰ）からサービス１００によって利用される独自のメッセージフォーマットへ変換することができる。
【００３８】
ＤＢプロキシサーバ６２０は、ユーザがオンラインであるか又はオフラインであるかを判断するためにユーザデータベース６２５に問い合わせ、オンラインの場合はディスパッチャ６１５を無線データ処理装置１０１に接続する。次に、ＤＢプロキシサーバ６２０は、ディスパッチャ６１５経由でユーザ無線装置１０１に対して新規電子メールメッセージ警告を自動的に送信する。この結果、ユーザがオンラインの場合、ユーザは、新規電子メールメッセージが自身の電子メールアカウントに到着したときに自動的な指示を受信する。
【００３９】
しかしながら、ユーザがオンラインの場合、ＤＢプロキシ６２０は図８に示されるような未処理メッセージテーブル８００に新規電子メール警告を格納する。この未処理メッセージテーブルは、テーブルに格納されるデータの型を指示するメッセージタイプ表示８０１、及び基本のメッセージデータを含むメッセージオブジェクト８０２から成る。メッセージタイプの３つの型を図８に示す。即ち、新規電子メールメッセージ警告８０１、新規電子メールメッセージ８１１、及び新規インスタントメッセージ８１２である。もちろん、実質的には制限されない数のメッセージタイプをユーザデータベース６２５上で一時的に待ち行列に入れることができるが、これも依然として本発明の基本原理に適合するものである。
【００４０】
一実施形態において、新規電子メールメッセージ警告が特定のメールフォルダ（例えば、特定のメールサーバ上のユーザ受信箱）用のユーザの未処理メッセージテーブル８００に格納されると、そのメールフォルダ用のテーブルにはいかなる追加の警告又は電子メールメッセージも格納されない。これにより、ネットワークバンド幅及びユーザデータベース６２５の記憶空間を節減する。しかしながら、異なるフォルダのための新規電子メール警告が受信される場合、未処理メッセージテーブル８００に新規電子メール警告が格納される。
【００４１】
ユーザがディスパッチャ６１５を通じてサービス１００に再接続するときはいつも、ディスパッチャ６１５はＤＢプロキシ６２０を初めにチェックし、電子メールメッセージ警告、電子メールメッセージ、又は他のタイプのデータが無線装置１０１のために保留されているか否かを判断する。保留されている場合、ディスパッチャ６１５はＤＢプロキシ６２０経由でその電子メールメッセージを検索し、且つ無線装置１０１へそれらを送信する。
【００４２】
一実施形態において、無線装置１０１が新規電子メールメッセージ警告８１０を受信すると（それはすぐに又は後で、ユーザデータベース内の待ち行列に入れられる）、無線装置１０１は、指定のグローバルＩＤ値を超えるすべての新規電子メールメッセージを求める要求を送信する。ユーザの命令に応答して、装置１０１によって自動的に又は手動によりその要求を生成することができる。図５に指示されるように、新規電子メールメッセージがサービス１００によって受信されるとき、新規グローバルＩＤが続いて割り当てられる。したがって、無線装置１０１は、以前にダウンロードされた電子メールメッセージに関する最大ＧＩＤ値を識別するために自身のローカル電子メールメモリに問い合わせることができ、そしてその識別されたＧＩＤ値よりも高いＧＩＤ値を有するすべての電子メールメッセージを要求する。この方法ですべての新規電子メールメッセージを求める大きな要求を送信することは、新規各電子メールを個々に要求する技法と比較したときに、かなりの量のネットワークバンド幅を節約する。
【００４３】
ディスパッチャ６１５は、電子メール要求として大きな要求を識別し（例えば、その要求に関連付けられるデータオブジェクトのヘッダーを読み出すことによって）、それに応じて電子メールプロキシ６１０へその要求を転送する。上述したように、要求がウェブページ要求又はインスタントメッセージトランザクションであった場合、ディスパッチャはその要求をそれぞれウェブプロキシサーバ又はインスタントメッセージプロキシサーバへ転送する。
【００４４】
電子メールプロキシ６１０が要求を復号化し、それに応じてＩＭＡＰプロトコル（又はメールサーバ６０５によって利用される他のプロトコル）にその要求を変換する。例えば、「すべての新規電子メールメッセージ」を求める単一の要求に応答して、プロキシサーバ６１０は、各新規電子メールメッセージを個々に要求するとともにそれらを、データ処理装置１０１に対する単一の大きな電子メールメッセージ応答にまとめ、ここでもバンド幅が節減される。
【００４５】
一実施形態において、プロキシサーバ６１０は、各電子メールメッセージの全内容（即ち、電子メールヘッダー＋本文）ではなく、すべての新規電子メールメッセージヘッダーのリストを最初に要求する。データ処理装置１０１においてメッセージヘッダーが受信されると、ユーザはメッセージヘッダーから各メッセージの件名を検討し、読みたい電子メールメッセージのみをダウンロードすることができる。
【００４６】
無線ネットワーク１２０は一般的には、有線ネットワークほどには信頼可能でない。このため、無線装置１０１は、サービス１００によるデータトランザクションの途中に無線ネットワーク１２０から時折接続を切られる場合がある。例えば、無線装置１０１は、電子メールプロキシ６１０がユーザのために電子メールサーバ６０５からの１つ又は複数の電子メールメッセージを検索した後であるが要求された電子メールメッセージがディスパッチャ６１５によって無線装置１０１に首尾よく配信される前に、無線ネットワークとの接続外に移動することができる。これが生じる場合、一実施形態において、ディスパッチャ６１５は、無線装置１０１がオンラインに戻るまでメモリ内の電子メールメッセージ（又は他のデータ）を一時的に待ち行列に入れる。無線装置１０１がディスパッチャ６１５と接続を再確立すると、ディスパッチャ６１５は、無線装置１０１へ待ち行列に入れられたデータを送信する。
【００４７】
しかしながら、一実施形態において、上述したように、ユーザが或る所定の時間期間（例えば、５分）にわたって接続外であった場合、ディスパッチャ６１５は、待ち行列に入れられたデータをＤＢプロキシ６２０に送信し、次に、ＤＢプロキシ６２０はそのデータを未処理メッセージテーブル８００に格納する。代替的に又は付加的に、ディスパッチャ６１５は、無線装置１０１へそのデータを送信する試みを指定回数（即ち、指定時間量ではない）行った後、待ち行列に入れられたデータをＤＢプロキシ６２０へ送信することができる。
【００４８】
ユーザがサービス１００との接続を再確立するとき、（データを最初に待ち行列に入れたディスパッチャとは異なるディスパッチャであり得る）ディスパッチャ６１５は、ＤＢプロキシ６２０に未処理データを問い合わせる。その後、ＤＢプロキシ６２０は、ディスパッチャ６１５へ未処理データを送信し、ディスパッチャ６１５は無線装置１０１へそのデータを転送する。
【００４９】
この結果、サービス１００は、多レベルの待ち行列を用いた電子メールメッセージ及び他のデータに関する信頼性のある配信システムを提供する。ディスパッチャ６１５は、短期間の待ち行列として作用し、所定の時間期間にわたって電子メールメッセージを格納する。所定の時間期間の後、無線装置１０１が依然としてオフラインである場合、ディスパッチャ６１５は、ＤＢプロキシ６２０によって維持されているユーザデータベース６２５へ未処理の電子メールメッセージを転送する。これにより、メモリ及び処理パワーが解放され、ディスパッチャ６１５はこれを他のデータ処理装置接続に再割り当てすることができる。次に、電子メールメッセージ及び他のデータは、ユーザデータベース６２５に無制限に（即ち、無線装置１０１がオンラインに戻るまで）格納される。
【００５０】
図９は、いま説明した電子メール配信処理の様々な態様の概要を示すフローチャートである。９０２において、メールエージェント６０６は、メールサーバ６０５上のユーザ受信箱に新規電子メールメッセージが到着したことを検出する。９０４において、ＤＢプロキシ６２０は、問い合わせによって無線装置１０１がユーザデータベース６２５に対して現在オンラインであるか否かを判断する。オンラインでない場合、新規電子メール通知がユーザデータベース９０６内で待ち行列に入れられ、その後、次にサービス１００に接続するときに無線装置１０１へ送信される。
【００５１】
無線装置１０１がオンラインである場合、９０８において、ディスパッチャは新規電子メールメッセージ通知を無線装置１０１に送信する。９０９において、電子メールプロキシ６１０は、無線装置１０１からすべての新規電子メールメッセージ（例えば、或る指定されたＧＩＤ値を超えるもの）を求める要求を受信する。９１０において、電子メールプロキシは新規電子メールメッセージを検索し、再フォーマットし、且つ（例えば、それらを単一の応答にまとめることによって）ディスパッチャへ送信する。９１２において、ディスパッチャ６１５は、電子メールメッセージを無線装置へ送信することを試みる。
【００５２】
送信が成功したか否かを９１４で判断し、成功したときは本処理を終了する。しかしながら、送信が成功しなかった場合、ディスパッチャ６１５は、９１８において判断される再送信閾値条件に達しない（即ち、時間閾値又は再送信閾値条件を通過しない）かぎり、９２０において、ローカルメッセージ待ち行列から電子メールメッセージを送信することを引き続き試みる。再送信閾値に到達すると、９２２において、電子メールメッセージがディスパッチャ待ち行列から、ユーザデータベース６２５内の長期間の未処理メッセージ待ち行列（例えば、未処理メッセージテーブル８００）へ送信される。
電子メールの調整及び同期を行うシステムの新規の実施形態
図１０は、内部電子メールメールサーバ及び外部電子メールメールサーバからの電子メールメッセージを管理する追加の技法を利用するアーキテクチャを示す。この実施形態では、電子メールメッセージの同期、配信、及びスケジューリングは、非同期新規メール通知受信器１００５、タスク待ち行列１００６、シンクロナイザ１００７、メールキャッシュ１００８、及びスケジューラ１００９を含むいくつかの新しい構成要素を介して達成される。別段に特記されない限り、図１０に示される構成要素は、上述した対応する構成要素（例えば、ＤＢプロキシ１０１４、ディスパッチャ１０１２、メールプロキシ１０１０等）と同じか又は類似した様式で動作する。
【００５３】
本発明の一実施形態では、タスク待ち行列１０１４は、非同期新規メール通知受信器１００５、スケジューラ１００９、メールプロキシ１０１０、及びシンクロナイザ１００７等の他のシステム構成要素によってタスクが配置される待ち行列（又は一連の待ち行列）である。タスク待ち行列１０１４は、厳密な線形待ち行列ではなく、例えば、アイテムが待ち行列内に入れられている時間の長さ、タスクの優先度が高いか又は低いか、及び他のタスクと融合可能であるか否かを含む複雑なヒューリスティクスに従って、実行する次のタスクを問い合わせることができる関係データベースである。データベースの一実施態様では、別個のタスクは、データベース内の各行に格納することができる。タスク待ち行列１００６は、競合状況（例えば、２つのエンティティが同じタスクを同時に完了しようと試みる場合に発生し得る）を回避するためにアトミックロック動作を実行する１つ又は複数の小型サーバアプリケーションも含み得る。タスクは、タスク待ち行列内に入ると、（後述するように）シンクロナイザ１００７等の他の構成要素によって続けて処理される。
【００５４】
図１１に示すように、タスク待ち行列１００６は、複数の個々の待ち行列１１０１〜１１０３から成ることができ、各待ち行列は、類似のタイプ及び／又は優先度のタスク１１１０〜１１１３を含む。例えば、各タスク待ち行列１１０１〜１１０３は、異なる優先度レベルを表すことができる。この実施形態では、相対的に高い優先度レベルを有する待ち行列内のタスクは、一般に、優先度レベル以外のすべての変数（例えば、各タスクが待ち行列内にあった時間の長さ等）が等しければ、相対的に低い優先度レベルを有するタスクに先駆けてサービスされる。代替的に又は付加的に、各タスク待ち行列１１０１〜１１０３は、異なるタイプのタスクを格納することができる。例えば、非同期新規メール通知受信器１００５によって提供された新規電子メール通知を１つの待ち行列内に入れ、スケジューラ１００９によってスケジュールされた電子メール動作を別の待ち行列内に入れ、シンクロナイザ１００７によって生成されたメッセージ本文要求を第３の待ち行列内に入れることができる。
【００５５】
当然ながら、異なるタスク「タイプ」は、実際には、各タスクタイプの異なるスケジューリング要件を満たすように異なる優先度を表すことができる。例えば、メールプロキシ１０１０によって生成されたユーザアクション／要求は、迅速なターンアラウンドを必要とするため、「高優先度」待ち行列に加えられる。同期タスクは、関連するアイテムを一緒にバッチすることができるように、ランダムアクセスが可能な待ち行列内に入れることができる。スケジューラ１００９によって生成されるような他のタスクは、通常の中優先度先入れ先出し（「ＦＩＦＯ」）待ち行列内に入れることができる。本発明の基本原理になお準拠しながら、タスクを特徴付け、タスクを待ち行列に分ける代替及び／又は追加の様々な技法を利用することができる。
【００５６】
本発明の一実施形態は、ユーザの様々なメールアカウントの分かっている最後の状態、即ち、装置に送信されたデータ、装置にこれから送信する必要があるデータ、様々なメールアカウントにこれから送信する必要があるデータ、及びよりよい性能のためにキャッシュされるメッセージ本文の一時的なローカルコピーを表すメッセージデータが格納されるメールキャッシュ１００８も含む。メッセージデータを格納する１つ又は複数の関係データベースをメールキャッシュ１００８内で利用することができる。
【００５７】
図１１は、永続的構造記憶装置１２０４及びメッセージ本文キャッシュ１２０５に論理的に細分されたメールキャッシュ１００８の一実施形態を示す。
永続的構造記憶装置１２０４は、各ユーザの電子メールアカウント（例えば、外部アカウント１００２及び内部アカウント１００３）の分かっている最後の状態をミラーリングする。一実施形態では、永続的構造記憶装置１２０４内に格納される情報には、メッセージ本文を除くユーザのすべてのメールデータ（例えば、送信者、タイトル、メッセージ受信者、メッセージデータ等）が含まれる。以下は、永続的構造記憶装置の一実施形態のスキーマの概略である。
【００５８】
１．各ユーザに関連付けられる電子メールアカウントのリスト
２．アカウントごとの、アクセス方法、サーバアドレス、認証証明書、最後に同期した時刻、同期詳細履歴、及び同期が実行されたフォルダのリスト
３．フォルダごとの、電子メールメッセージのリスト
４．メッセージごとの、日付、タイトル、フラグ、送信者、及び受信者を含むがこれらに限定されない、そのメッセージの概要リストを作成するために十分な情報
上述した基本メールデータ構造に加えて、永続的構造記憶装置１２０４は、仮想フォルダ、メッセージスレッド、及び全文探索のための用語索引をも含んでもよい。一実施形態では、永続的構造記憶装置１２０４は、発信元サーバ（例えば、メール記憶装置１０００２、１００３）上の各メッセージの分かっている最後の状態と、保留の状態（identity of pending）、非同期変更を含み得る現在のローカル状態との差異を保持する。
【００５９】
以下は、或るメッセージに関する、サーバ上の分かっている最後の状態と現在のローカル状態との差分の例である。
１．メッセージがローカルに削除されたが、削除がまだ同期されていない
２．メッセージがローカルに「隠された」が、これは、同期を意図されない削除である
３．まだ同期されていないフラグの変更（例えば、「まだ見ていない」表示から「見た」への変更）
４．メッセージが異なるフォルダに移されたが、まだ同期されていない
一実施形態では、永続的構造記憶装置は、メッセージのみならず、フォルダについてのメタデータも格納するため、フォルダに関する、サーバ上の分かっている最後の状態と現在のローカル状態との差分を表すこともできる。これらは、フォルダ名変更及び削除を含み得る。
【００６０】
一実施形態では、情報は、キャッシュ管理ポリシーに従って永続的構造記憶装置１２０４内に保持される。最も単純な場合では、ユーザのための永続的構造記憶装置が指定の閾値に達すると、古い情報が除去されて、新しい情報に対する余地が作られる。代替的には、最も長い時間期間にわたってアクセスがなかった情報を除去して、新しい情報及び／又は最近より頻繁にアクセスがあった情報に対する余地が作られ得る。本発明の基本原理に依然として準拠しながら、他の様々なキャッシュ管理ポリシーを実施することができる。
【００６１】
各メールサーバの状態を反映する、永続的構造記憶装置１２０４内に格納されるメタデータは、再生成が容易なため（即ち、リモートサーバへの問い合わせにより）、一時的なものであると考えられる。しかし、該メタデータは、メールサーバの新しい状態をメールキャッシュに格納されている最後のバージョンと比較し、差分のみをデータ処理装置に送信することが可能であるため、該メタデータをメールキャッシュ内に保持することで大きな最適化が得られる。メールサーバの前の状態なしでは、はるかに多くのデータをデータ処理装置に送信する必要があり、装置が、すでに分かっていること、及びまだ分かっていないことを把握することを担当することになる。
【００６２】
これらの概念を念頭に置き、本発明の一実施形態では、複数のサーバが、サービス内で実施されて、複数のメールキャッシュをサポートする。メールシステムに接続されているとき、データ処理装置は、そのユーザのメールアカウントに関するメタデータが格納されている特定のメールキャッシュサーバ上に「ホーム（home）」される。さらに、性能のために、メールデータは、共有記憶装置（例えば、ユーザデータベース）にコピーされない。装置のメールキャッシュを格納しているサーバがダウンした（ユーザがリホーム（re-home）する必要がある）場合、本発明の一実施形態は、メール記憶装置とのキャッシュレス同期反復を実行するパフォーマンスヒットを許容する。
【００６３】
本発明の一実施形態では、いくつかのメタデータはローカルのみである（即ち、メールキャッシュ内のみに格納される）。これは、例えば、「隠し」とフラグされたメッセージを含む。他のメールデータ（常にメール記憶装置から検索することができる）とは対照的に、このデータは、確実に永続的である必要がある。これを達成するために、２階層のデータが永続的構造記憶装置内に実施され、一方は確実に永続的なものであり（即ち、共有記憶装置内に格納するか、又は複数のサーバにわたって格納することにより）、他方は確実に永続的なものではない。
【００６４】
メッセージ本文キャッシュ１２０５は、永続的構造記憶装置１２０４内のメッセージメタデータと相互参照される完全なメッセージ本文を保持する。一実施形態では、メッセージ本文は、一般的に永続的構造記憶装置のキャッシュ管理ポリシーとは異なる第２のキャッシュ管理ポリシーに従って、一時的にメッセージ本文キャッシュ１２０５内に格納される。非常に大きな第三者の電子メールアカウントの可能性を考えて、キャッシュ管理ポリシーは、通常、常にユーザのすべての電子メールデータをキャッシュするわけではない。それに代えて、知的ポリシーが実施されて、メッセージがキャッシュ内にあった時間の長さ、メッセージがアクセスされた最後の時刻、ユーザのアカウント内の全体のアクティビティレベル、及びキャッシュ内にすでに格納されているデータ量等の変数に基づいてメッセージが除去される。例えば、ユーザが特定のメッセージに頻繁に（即ち、指定の閾値を超えて）アクセスする場合、メッセージ本文キャッシュ１２０５は、メッセージが比較的長時間にわたってキャッシュ内にあったという事実にも関わらず、このメッセージのコピーを保持することができる。これとは対照的に、メッセージが長時間（例えば、第１の指定の時間期間）にわたってキャッシュ内にあり、且つユーザによって最近（例えば、第２の指定の時間期間）アクセスされていない場合、メッセージ本文をメッセージ本文キャッシュから削除することができる。メッセージを保持すべきか、それとも除去すべきかを決定するために、他の様々なキャッシュ管理変数を実施することができる。
【００６５】
一実施形態では、性能を最適化するために、メッセージ本文フェッチャは、新規本文があることを検出したときは常に、投機的に（即ち、データ処理装置からの明示的な指示なしで）メールサーバからメッセージ本文を検索する。一実施形態では、投機的にフェッチされた本文は、装置によって要求されるまで、装置に送信されない。
【００６６】
一実施形態では、第２層のメッセージキャッシュは、データ処理装置１０１上で実施される。具体的には、この実施形態では、新規電子メールメッセージが受信されるとすぐに、そのメッセージに関するメタデータが、「新規メッセージ」通知と共にデータ処理装置に送信される。一実施形態では、メタデータは、永続的構造記憶装置１２０４内に格納されているものと同じデータである。代替的には、メタデータは、永続的構造記憶装置１２０４内に格納されているデータの制限されたサブセット（例えば、メッセージタイトル、送信者、及び受信者）であり得る。メッセージ本文は、エンドユーザによって要求されたときのみ、データ処理装置に送信される。
【００６７】
一実施形態では、異なるキャッシュ管理ポリシーがデータ処理装置に対して実施されて（即ち、システムメールキャッシュ１００８に対して実施されるキャッシュ管理ポリシーとは異なる）、メタデータ及び／又はメッセージ本文がキャッシュされる。例えば、メッセージ本文が装置にダウンロードされると、メッセージ本文をメッセージ本文キャッシュ内に保持しておく理由はない。したがって、この実施形態では、ダウンロードされたメッセージ本文は、メッセージ本文キャッシュから自動的に削除される。メッセージ本文は、装置上に来ると、装置に対する別個のキャッシュ管理ポリシーに従ってキャッシュされる。例えば、一実施形態では、所定の時間期間にわたってアクセスされなかったメッセージ本文は、エンドユーザによって要求されるまで、キャッシュから除去することができる。
【００６８】
一実施形態では、２つの基準、即ちメッセージサイズ及びメッセージの新しさが装置側キャッシュの管理に使用される。一実施形態では、非常に大きな（即ち、閾値を超える）メッセージがキャッシュから除去されて、最少数のメッセージのデキャッシュによって大部分のメモリが解放される。これは、ごく最近の（即ち、指定の時間期間以内に受信された）非常に大きなメッセージを、可能であれば、キャッシュから除去すべき「ではない」という制約を受ける。
【００６９】
一実施形態では、シンクロナイザ１００７は、ユーザのメールアカウント１００２、１００３のキャッシュビューを常時更新し、ユーザによって行われた変更によってメールアカウントを更新し、その２つの間の対立を調整するデーモン（即ち、連続ループで実行されるソフトウェア構成要素）である。これはまた、データをメールプロキシ１０１０経由で装置１０１に非同期に送信する。
【００７０】
図１２に示すように、シンクロナイザ１００７の一実施形態は、メッセージ本文フェッチャ構成要素１２０２及び同期ロジック１２０１を含む。その名称が示唆するように、メッセージ本文フェッチャ１２０２は、新規メッセージ本文の検索及びエンドユーザに対する要求時にキャッシュから除去されたメッセージ本文（例えば、まだ永続的構造記憶装置１２０４内にあり得るが、メッセージ本文キャッシュからフラッシュされたメッセージに対する本文）の検索を担当する。メッセージ本文フェッチャは、外部メール記憶装置１００２及び内部メール記憶装置１００３の両方と通信して、要求されたメッセージ本文を検索する。
【００７１】
同期ロジック１２０１は、ユーザのメールアカウントのメールキャッシュのビューを更新し、ユーザによって行われた変更でメールアカウントを更新し、その２つの間の対立を調整する。言い換えれば、同期ロジック１２０１は、ユーザの電子メールアカウントの内部表現が正当なサーバ上の実際の状態と合致することの保証、この同じ状態が無線装置１０１上でも忠実に反映されることの保証、及びいずれかの側での変更が適宜伝搬されることの保証を担当する構成要素である。これは、メールプロキシ１０１０経由で装置にデータを非同期に送信もする。一実施形態では、バンド幅を節減するために、同期ロジック１２０１は、適当な場合、複数のメール動作を組み合わせる。例えば、特定のメッセージが読まれ、変更され、フォルダに移され、次に、エンドユーザによって削除された場合、削除動作のみを同期する必要がある。
【００７２】
動作に際して、シンクロナイザは、同期する必要があるアカウントについて、タスク待ち行列１００６に継続的に問い合わせる。ユーザアカウントに対するエントリは、以下の状況においてタスク待ち行列内に入れられる。
【００７３】
１．非同期新規メール通知受信器が、外部メール記憶装置１００２（ＳＭＴＰ受信器１００４を通じて）からそのアカウントに対する新規メール通知を受信した場合
２．ユーザにより、又は元のアカウントのミラーリングを要求するウェブベースのインタフェース経由で、無線装置１０１上のメッセージデータに変更が行われた場合
３．スケジューラ１００９が、ユーザのアカウントを同期させるときだと判断した場合
４．ユーザアクションにより、メッセージデータの（再）ダウンロードを要求するキャッシュミスが生じた場合。ユーザアクションが一般にリアルタイムで未処理であるという点でこれが特殊なケースであることに留意する。したがって、この動作の場合、「高優先度」タスク待ち行列（例えば、図１１内の待ち行列１１０１）を使用することができる。この場合、所望のコンテンツは、同期要求に対するパラメータであり、待機中のクライアントは、適時完了通知を受信しなければならない（即ち、サービスに対する要求は、ユーザが読み出しを待っているメッセージの識別情報を含む）。
【００７４】
一実施形態では、タスク待ち行列１００６から動作を行うアカウントを識別した後、シンクロナイザは、図１３に示すように、以下の動作を実行する。
１３０１．元のサーバへの接続
シンクロナイザはまず、アカウントの元のサーバ（例えば、外部メール記憶装置１００２又はローカルメール記憶装置１００３）に接続する。そうするために、シンクロナイザは、ＤＢプロキシ１０１４から必要なアカウントタイプ／ロケーション情報に加えて、認証証明書を取得し、次に、この情報を使用して、アカウントの元のサーバとの接続を確立する。
１３０２．最後の同期からの変更の決定
次に、シンクロナイザ１００７は、最後の同期からそのアカウント内で何が変更されたかを判断する。そうするために、元のサーバから、該サーバに含まれるメッセージに関するリモートフォルダのリスト及び概要データを取り出す。一実施形態では、所与の最高点よりも新しいメッセージ概要のみが問い合わされる「クイックスキャン」同期モードが利用される。このモードは、古いメッセージ内のフラグ変更を黙過するが、新規メッセージを発見する。データは、元のサーバから収集されると、永続的構造記憶装置内のアカウントの表現と比較される。見つかった任意の差分は、リモート変更のセットを構成する。
１３０３．対立の解決
次に、シンクロナイザは、元のサーバの変更セットとユーザのローカル変更セットとの間に存在し得る任意の対立の解決を試みる。ユーザアカウントのメールデータに対する未処理ローカル変更リストが、リモート変更セットと比較され、同じデータアイテムが両方の場所で変更された場合、（変更が両方の側で同一でないかぎり）対立が存在し、その対立を解決しなければならない。一実施形態では、シンクロナイザ内の対立検出・修正ロジックは、サーバが正当であるという原理に基づいてローカルバージョンよりも元のサーバのバージョンの方を選ぶ。代替的には、一実施形態では、対立検出・修正ロジックは、変更のローカルバージョンを選択する。別の実施形態では、シンクロナイザはユーザに問い合わせ、ユーザが変更の修正バージョンを選択できるようにする。
１３０４．ローカル変更のアップロード
対立解決によってなくなったローカル変更は、外部メールサーバ１００２（例えば、ＩＭＡＰ  ＳＴＯＲＥコマンド、ＰＯＰ  ＤＥＬＥコマンド等）によって要求されるプロトコルシーケンス経由でサーバにアップロードされる。
１３０５．リモート変更のダウンロード
前のステップを通じてまだ取得されていない任意の関連する構造データが、発見された任意の新規メッセージの本文と共にダウンロードされる。その結果は、永続的構造記憶装置１２０４及びメッセージ本文キャッシュ１２０５内に配置される。一実施形態では、新たに追加されたメッセージ本文は、特定の最小時間量にわたってキャッシュ内に留まり、装置が非同期メール変更通知に応答すると共に本文を要求できるようにする。
１３０６．適切な通知の待ち行列入れ
リモート変更がダウンロードされると、適切な通知（例えば、新規メール通知、メッセージ削除通知等）が、メールプロキシ１０１０及びディスパッチャ１０１２経由で（上述したように）装置に非同期送出するために待ち行列に入れられる。一実施形態では、リモート変更に起因する永続的構造記憶装置内の新しい情報は、非同期通知を装置に自動的に送出させ、該装置は、追加のデータを要求し得る。フラグのオンオフ切り替え等の単純な変更の場合、データ自体を通知内に含めることができる。
【００７５】
一実施形態では、スケジューラ１００９は、ユーザアカウントに対するタスクをタスク待ち行列１００６内に入れることにより、どのアカウントに対していつ動作するかをシンクロナイザに指示するデーモンである。スケジューラ１００９は、アカウントアクティビティ及びユーザプリファレンス等の変数に基づいて、アカウントごとに異なる同期頻度ヒューリスティクスを利用することができる。例えば、ユーザが自分のアカウントに対して積極的に作業している（例えば、積極的に電子メールメッセージを送信し読み出している）場合、スケジューラ１００９は、同期頻度を一時的に増大させることができる。同様に、ユーザの外部メールアカウント１００２がかなりアクティブである場合も、スケジューラ１００９は（アクティビティの少ないアカウントと比較して）同期頻度を増大させることができる。一実施形態では、スケジューラ１００９は、ＤＢプロキシ１０１４をチェックして、アカウントアクティビティを判断する。ＤＢプロキシ１０１４が、ユーザのアカウントが「アクティブ」（例えば、新規メッセージが存在するため）であることを指示する場合、スケジューラ１００９は同期頻度を増大させる。これとは対照的に、ＤＢプロキシ１０１４が、ユーザのアカウントが「非アクティブ」（例えば、ユーザがオフラインであり、且つ／又は新規メッセージが存在しないため）であることを指示する場合、スケジューラ１００９は同期頻度を低減させる。同様に、最後の同期中に遷移エラーが発生した場合（例えば、パスワード又は他の認証データの期限切れ又は不正確性により）、スケジューラ１００９は、同期頻度をより大きな量だけ低減することができるか、又はエラーが修正されるまで（例えば、正確なユーザ名及びパスワードがシステムに提供されるまで）スケジュールされた同期をディセーブルすることができる。一般に、スケジューラによって利用されるヒューリスティクスは、以下の変数、即ち、最後に同期した時刻、同期時のエラー頻度、このアカウントにおいて見られるメールの容量、外部電子メールプロバイダ要件／プリファレンス、及び同期されるべき未処理変更の容量を含むが、これらに限定されるものではない。
【００７６】
上述したように、一実施形態において、メールプロキシ１０１０は、無線装置１０１に対する待ち行列入れ機能を実行し、ディスパッチャ１０１２を通じて装置に通信する。例えば、シンクロナイザ１００７による同期及び／又は非同期新規メール通知受信器１００５によって受信された新規メール通知に応答して、メールプロキシ１０１０は、新規メッセージ通知を無線装置１０１にプッシュする。一実施形態では、新規メッセージ通知は、各メッセージに関するメタデータ（例えば、送信者ＩＤ、タイトル、日時等のような永続的記憶装置１２０４内に格納されている情報と同じ情報又はそのサブセット）を含む。メタデータを使用して、ユーザは次に、メッセージ本文キャッシュ１２０５からメッセージ全文を要求することができる。
【００７７】
一実施形態では、ＳＭＴＰ受信器１００４は、外部ＳＭＴＰサーバ１００１からのインバウンドＳＭＰＴ要求（例えば、新規メッセージ等の電子メールアカウント更新）を処理する。ＳＭＴＰ受信器１００４は、新規メッセージをローカルメール記憶装置１００３に入れる前に、スパムフィルタリング及び添付ファイルストリッピングを実行することもできる。インバウンドメッセージがローカルメール記憶装置１００３内に入れられると、非同期新規メール通知受信器１００５は、その新規メッセージの着信について警告される。
【００７８】
一実施形態では、ローカルメール記憶装置１００３は、内部ユーザアカウントに属するメッセージ及び外部ＳＭＴＰサーバ１００１から受信した外部メッセージが格納される場所である。ローカルメール記憶装置１００３は、外部メールアカウント１００２と同様にＩＭＡＰサーバとすることができ、この場合、（シンクロナイザ１００７及びメールキャッシュ１００８等の他のシステム構成要素の観点からの）ローカルメール記憶装置１００３と外部アカウント１００２との差分のみが、ローカルメール記憶装置１００３がサービス１００によってホストされるものである。
【００７９】
上述したように、非同期新規メール通知受信器１００５は、ユーザの様々な電子メールアカウント（例えば、外部アカウント１００２及びローカルメールアカウント１００３）への新規メールの着信に関連する非同期通知を処理する。特定の外部アカウント１００２は、新規メール通知を非同期新規メール通知受信器１００４にプッシュし、それにより、変更について外部アカウントを常時ポーリングする必要性をなくすことができる。
【００８０】
図１４は、シンクロナイザモジュール１４０７及びメールキャッシュ１４０８を使用して１つ又は複数の電子メール記憶装置１４０１〜１４０３と無線データ処理装置１０１との間で電子メールを同期させるシステムの別の実施形態を示す。特に、この実施形態は、上述した実施形態が含むようなスケジューラ又はタスク待ち行列を含まない。同期は、データ処理装置１０１上のメールデータの状態への変更等の装置主導イベントに基づいて実行される。
【００８１】
メール記憶装置と同期するために図１４に示すサービスによって実施される方法の一実施形態を図１５に示す。１５０１において、メール動作がユーザによってデータ処理装置上で実行される。例えば、ユーザは、１つ又は複数の電子メールメッセージを削除することができる。
【００８２】
１５０２において、電子メールメッセージ（複数可）の動作及び識別情報が、シンクロナイザモジュール１４０７（メールプロキシ１０１０経由で）に報告される。１５０３において、シンクロナイザ１４０７は、メール記憶装置１４０１〜１４０３のうちの１つ（即ち、動作が実行された電子メールメッセージを含むメール記憶装置）に対する動作の実行を試みる。１５０４において、メール記憶装置は、必要であれば、動作に対する対立解決を実行する。シンクロナイザによって要求された動作が前の動作と対立する場合、メールサーバは、シンクロナイザによる要求を拒絶することができる。例として、ユーザが、デスクトップインタフェース（例えば、ウェブブラウザ）経由でメール記憶装置に接続され、電子メールメッセージを新しいフォルダに移してから、同じ電子メールメッセージをデータ処理装置から削除した場合、削除の試みは失敗する。他の様々な既知の対立解決技法をメール記憶装置に対して実施することができる。
【００８３】
１５０５において、シンクロナイザ１４０７は、動作が要求されたメール記憶装置から更新状態情報を検索する。上記例に戻ると、削除動作が、電子メールメッセージが新規フォルダに移されたために失敗した場合、この情報はシンクロナイザ１４０７に送信される。
【００８４】
１５０６において、シンクロナイザ１４０７は、メールキャッシュ１４０８内の状態情報を更新する。一実施形態では、メールキャッシュ１４０８は、上述したメールキャッシュ１００８と同じアーキテクチャを利用する。例えば、メールキャッシュは、各ユーザのメール記憶装置の状態に関連するメタデータ及びメッセージ本文をキャッシュするメッセージ本文キャッシュ１２０５を格納する永続的構造記憶装置１２０４を含む。したがって、更新状態情報は、永続的構造記憶装置１２０４及び／又はメッセージ本文キャッシュ１２０５内に反映される。
【００８５】
１５０７において、メールキャッシュ１４０８は、更新された変更を無線データ処理装置１０１に送信する。
一実施形態では、上述したような複数のシンクロナイザ及びメールキャッシュは、複数の物理的なサーバにわたって実施される。ユーザがサービスに接続されているとき、ユーザのメールキャッシュは特定のサーバ上に保持される。即ち、ユーザは、サービス内の特定のメールキャッシュサーバ及び／又はシンクロナイザ上に「ホーム」される。サービスは、ユーザのために特定のメール記憶装置に接続することを望む場合、まず、ユーザが特定のメールサーバキャッシュ及びシンクロナイザ上にホームされているか否かをチェックして判断する。この情報はユーザデータベース内に保持することができる。ホームされている場合、メール要求はそこに向けられ、そこで、リモートメールサーバへのライブ接続はすでに確立されている場合があり、再使用することができる。
【００８６】
ユーザのリモートメールサーバセッションに関する多数の状態が、そのユーザ／アカウントが帰するメールキャッシュにローカルに保持される。データは、サーバ性能及びネットワーク性能のためにローカルである。そのユーザ／アカウントの異なるノードへのリホームを容易にするために（例えば、サーバがダウンした場合、又は異なるサーバセットにわたる負荷をリバランスさせることが望ましい場合）、本発明の一実施形態は、ローカル状態をユーザデータベース等の共有記憶装置に移す（即ち、ＤＢプロキシ経由で）。
【００８７】
本発明の実施形態は、上述した様々なステップを含むことができる。汎用プロセッサ又は専用プロセッサに特定のステップを実行させる、機械実行可能命令に本ステップを埋め込むことができる。代替的に、これらのステップを、ステップを実行するハードウェアロジックを含む特定のハードウェア部品によって、又はプログラムされたコンピュータ部品とカスタムハードウェア部品との任意の組み合わせによって実行することができる。
【００８８】
本発明の要素を、機械実行可能命令を格納する機械可読媒体として提供することもできる。機械可読媒体は、これに限定するものではないが、フロッピーディスケット、光ディスク、ＣＤ−ＲＯＭ、及び磁気光ディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気又は光カード、伝搬媒体又は電子命令を格納するのに適した他のタイプの媒体／機械可読媒体を含むことができる。例えば、本発明はコンピュータプログラムとしてダウンロードされることができ、リモートコンピュータ（例えば、サーバ）から要求コンピュータ（例えば、クライアント）へ、通信リンク（例えば、モデム又はネットワーク接続）を介して搬送波又は他の伝搬媒体に埋め込まれたデータ信号によって送信されることができる。
【００８９】
上記の記載全体を通じて、説明のために、本発明の完全な理解のために、多数の具体的な詳細を記載してきた。しかしながら、当業者であればこれらの具体的な詳細なしでも本発明を実行できることは明白である。例えば、図１０に示す機能モジュールのそれぞれは、別個の物理的なサーバ機械として実施されてもよく、又は複数の物理的な機械にわたって分散してもよい。さらに、特定のモジュールは、単一の機械上に一緒にグループ化されてもよい。さらに、本発明の実施形態は、ＩＭＡＰ及びＰＯＰの文脈の中で上述されたが、本発明の基本原理はいかなる特定のタイプのプロトコルにも限定されるものではない。したがって、本発明の範囲及び精神は、以下の特許請求の範囲に関して判断されるべきである。
【図１】
0005383660.tif 000002
【図２】
0005383660.tif 000003
【図３】
0005383660.tif 000004
【図４】
0005383660.tif 000005
【図５】
0005383660.tif 000006
【図６】
0005383660.tif 000007
【図７】
0005383660.tif 000008
【図８】
0005383660.tif 000009
【図９】
0005383660.tif 000010
【図１０】
0005383660.tif 000011
【図１１】
0005383660.tif 000012
【図１２】
0005383660.tif 000013
【図１３】
0005383660.tif 000014
【図１４】
0005383660.tif 000015
【図１５】
0005383660.tif 000016