(57)【要約】【課題】【解決手段】  メールサーバと移動通信装置の間でデータを同期させる適応ポーリングシステムに使用するメールボックスポーリングプリエンプティブ基準を説明する。ポーリングエンジンは、メールボックス内のメッセージの数、総メールボックスサイズ（すなわち、バイトで表した使用記憶域サイズ）、および最新ポーリングによる最新メッセージＩＤの指示を記憶する。次のポーリングにおいて、ポーリングエンジンは、メールボックスからこの情報を取り出し、それを最新ポーリングにより記憶された値と照合する。情報が同じ場合はメッセージＩＤリストを比較する必要はない。メールボックス内のメッセージの数、メールボックスサイズおよび最新メッセージＩＤのいずれかが変化したときは、メッセージＩＤリストの完全な比較が行われる。【選択図】  図１
2005244951.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのデータサーバと移動通信装置との間でデータを更新する適応ポーリング方法において、改良点が、
前記少なくとも１つのデータサーバから現行のプリエンプティブ基準を取り出す段階と、
前記現行のプリエンプティブ基準を、あらかじめ記憶されたプリエンプティブ基準と比較する段階と、
前記現行のプリエンプティブ基準が、前記あらかじめ記憶されたプリエンプティブ基準と等しくない場合に、前記データサーバと移動通信装置との間で前記データを更新し、前記あらかじめ記憶されたプリエンプティブ基準と等しい場合に、前記データサーバと移動通信装置の間の前記データの前記更新を先取りする段階と、
を含む方法。
【請求項２】
前記データサーバが、各メッセージＩＤによって識別された電子メールを記憶するメールボックスを備えたメールサーバであり、前記プリエンプティブ基準が、前記メールボックス内のメッセージの数、メールボックスサイズおよび最新メッセージＩＤを含むグループから選択されている、請求項１に記載の改良点。
【請求項３】
メールサーバ内の主メールボックスと複数の外部メールボックスとの間で電子メールを更新する適応ポーリング方法において、
前記複数のメールボックスから現行のプリエンプティブ基準を取り出す段階と、
前記複数のメールボックスのそれぞれに関して、前記現行のプリエンプティブ基準をあらかじめ記憶されたプリエンプティブ基準と比較する段階と、
前記現行のプリエンプティブ基準が、前記あらかじめ記憶されたプリエンプティブ基準と等しくない場合に、前記主メールボックスと前記複数のメールボックスとの間の前記電子メールを更新し、前記あらかじめ記憶されたプリエンプティブ基準と等しい場合に、前記主メールボックスと前記複数のメールボックスの間の前記電子メールの前記更新を先取りする段階とを含む方法。
【請求項４】
前記電子メールが各メッセージＩＤによって識別され、前記プリエンプティブ基準が、各前記外部メールボックス内のメッセージの数、各前記外部メールボックスのメールボックスサイズ、および各前記外部メールボックスの最新メッセージＩＤを含むグループから選択されている、請求項３に記載の改良点。
【請求項５】
無線通信システムであって、
無線ネットワークを介してアクセス可能なモバイル装置と、
ユーザ電子メールを記憶するモバイルメールボックスと、
前記モバイル装置と前記モバイルメールボックスの間の前記無線ネットワークを介したデータ通信を制御する無線サービスエンジンと、
複数の外部ユーザメールボックスと、
前記モバイルメールボックスと前記複数の外部ユーザメールボックスとの通信において、前記複数の外部ユーザメールボックスのそれぞれに関して、前記複数の外部ユーザメールボックスから現行のプリエンプティブ基準を取り出し、前記現行のプリエンプティブ基準をあらかじめ記憶されたプリエンプティブ基準と比較し、前記現行のプリエンプティブ基準が前記あらかじめ記憶されたプリエンプティブ基準と等しくない場合に、前記モバイルメールボックスと前記複数の外部ユーザメールボックスとの間で前記電子メールを更新し、前記現行のプリエンプティブ基準が前記あらかじめ記憶されたプリエンプティブ基準と等しい場合に、前記モバイルメールボックスと前記複数の外部ユーザメールボックスとの間で前記電子メールの前記更新を先取りするポーリングエンジンと、
を含む無線通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、一般に、無線通信システムに関し、より詳細には、メールボックスポーリングプリエンプティブ基準を使用して、メールサーバと移動通信装置の間、または複数の外部メールボックスと主メールボックスとの間で電子メールメッセージを更新する改善されたシステムおよび方法に関する。
【背景技術】
【０００２】
当技術分野において、リモートユーザ間でメッセージを更新するために、中央メールサーバの電子メールポーリングを提供することが知られている。例えば、Ｎｏｖｅｌｌ（登録商標]は、ＮｅｔＭａｉｌ ＸＥソルーションを提供しており、それによりブランチ／リモートオフィスに設置されたメールサーバが、インターネットサービスプロバイダ（ＩＳＰ）から電子メールメッセージを受け取り、受け取ったメッセージを、ローカルエリアネットワークを介してブランチ／リモートオフィスにいるユーザに分配する。ＩＳＰにあるメールサブドメインは、メールキャッシュとして働き、リモートオフィス向けのすべての電子メールを、ＩＳＰとの間で電子メールを送受信するメールサーバに転送する。
【０００３】
前述のシステムにおいて、ＩＳＰにあるメールサブドメインは、メールボックスに新しく着信したメッセージまたは発信するメッセージがあるかどうかに関係なく、メッセージを送受信するためにメールサーバによってポーリングされる。大規模なシステムでは、このポーリング方法は、大量のサーバリソースを消費し、性能に影響を及ぼすことがある。リソースの消費と性能への影響は、メールボックスポーリングが、帯域幅が限られた無線ネットワークを介してモバイル装置に行われるときにより多く現れる。例えば、１０００個のメールボックスを有するメールサーバがポーリングされ、無線装置上で実行されている１０００個のメールアプリケーションに１５分ごとに更新を送る場合、無線ネットワークは激しく混雑し、その結果大きなサービス遅延が生じる。
【０００４】
この欠点に取り組むために、無線データ通信機などの移動通信装置と共に使用するための新しいポーリング方法が提案されている。この新しいポーリング方法は、「適応ポーリング」と呼ばれ、トリガイベントに基づくメールボックス更新を提供する。適応ポーリングは、ユーザのポーリング間隔をそのユーザの利用プロファイルに基づいて自動的に決定する。適応ポーリングの詳細は、２００３年８月７日に出願された米国特許出願第６０／４９３，１１８号に述べられており、この出願の内容は、引用により本明細書に組み込まれたものとする。このシステムにおいて、リモート無線加入者は、外部アカウントから新しい電子メールを定期的にポーリングし、新しい電子メールをその加入者の移動通信装置に配信されるユーザのモバイル無線アカウントメールボックスに入れるＰＯＰポーリングエンジンによって、外部メールボックス（例えば、ＰＯＰアカウント）をその加入者のモバイル無線アカウントに統合することができる。ポーリングエンジンが外部メールボックスをポーリングするとき、そのポーリングエンジンは、メッセージＩＤの現行リストを外部メールボックスに要求し、リスト内の各エントリを調べて、そのメッセージＩＤが既にローカルデータベースに記憶されているかどうかを確認する。メッセージＩＤがデータベース内に見つからない場合、そのメッセージＩＤは新しい電子メールであると見なされ取り出される。新しい電子メールが取り出された後、その後のポーリングの際に再び取り出されるのを防ぐために、メッセージＩＤがデータベースに追加される。メッセージＩＤがデータベース内に見つかった場合は、昔のメッセージであると見なされ無視される。適応アルゴリズムは、ユーザが経験している電子メールトラフィックの量に基づいてポーリング頻度を変化させる。しかしながら、ポーリングエンジンは、それぞれの外部ＰＯＰアカウントごとに、外部アカウントに新しい電子メールがあるかどうか、またどの電子メールが新しいかを判断できなければならない。
【０００５】
以上説明した適応ポーリング技術には、ポーリングのたびにすべてのメッセージＩＤをデータベースと照合しなければならないという性能上の問題がある。したがって、この技術は、メールボックスが大きい場合とメールボックスが多数ある場合には効率的でない。
本明細書において、用語「ポーリング」は、新しいメッセージを検出し、検出した新しいメッセージを取り出し、メッセージを装置またはメールボックスに送ることを示すために使用される。したがって、ポーリングは、同期とは異なり、それにより、ユーザ装置／主メールボックス上のメッセージは、そのユーザのメールボックス／複数の外部メールボックス内のメッセージと完全に同期される。ポーリングは比較的高い頻度で行われることがあるが、完全な同期は、（ポーリング間隔よりはるかに長い時間間隔で）定期的に行われるか、ユーザ装置よる完全な同期のユーザ要求に応じて行われる。
【発明の開示】
【課題を解決するための手段】
【０００６】
本発明の態様によれば、メールボックスへの変更がなかったかどうか（すなわち、新しい電子メールがないかどうか）を判定するためにメールボックスポーリングポーリングエンジンによってプリエンプティブ（先取り）基準が使用され、この場合、メッセージリストをローカルデータベースと比較する必要がない。
より詳細には、ポーリングエンジンは、メールボックス内のメッセージの数、総メールボックスサイズ（バイトで表した使用記憶域サイズ）、および最新ポーリングからの最新メッセージＩＤの示度を記憶する。次のポーリングにおいて、ポーリングエンジンは、メールボックスからこの情報を取り出し、それを最新ポーリングにより記憶された値と照合する。情報が同じ場合は、メッセージＩＤリストを比較する必要はない。メールボックス内のメッセージの数、メールボックスサイズ（バイトで表した使用記憶域サイズ）、および最新メッセージＩＤのいずれかが変更されたときは、メッセージＩＤリストの完全な比較が行われる。
【０００７】
本出願のこの他の態様および特徴は、添付図面と共に本発明の特定の実施形態の以下の説明を精査することにより当業者に明らかになるであろう。
次に、添付図面を参照して本出願の実施形態を単なる例として説明する。様々な図において、類似の要素を示すために同じ参照番号が使用されている。
【発明を実施するための最良の形態】
【０００８】
次に図面を参照すると、図１は、前述の米国特許出願第６０／４９３，１１８号に述べられている適応ポーリング用のシステムを示すブロック図である。適応ポーリングシステムの構成要素は、無線ネットワーク１０２とインターネット１０４を介してエンタープライズ（例えば、会社オフィス、ＩＳＰなど）とリモート通信する複数の無線装置１００からなる。エンタープライズは、ポーリングエンジン１０８と、メールサーバ１１２やアプリケーションサーバ１１４、ウェブサーバ１１６、その他の同等装置などのポーリングエンジン１０８に接続する様々なデータサーバ１１０とを含む。
【０００９】
ポーリングエンジン１０８は、モバイル装置１００とデータサーバ１１０の間のセキュア通信を保証するために、エンタープライズの会社ファイアウォール１０６の後ろに配置されている。
前述のように、ポーリングエンジン１０８は、各ユーザの利用プロファイルに基づいて適応ポーリング・レートを決定する。好ましい実施形態は、メールサーバ１１２をポーリングする観点で説明しているが、当業者は、ポーリングエンジンが、データサーバ１１０の他のもの（例えば、アプリケーションサーバ１１４、ウェブサーバ１１６など）からサービスとイベントをポーリングするように構成されてもよいことを理解するであろう。さらに、本発明の原理は、複数の外部メールボックスからのメールのポーリングに適用することができ、その場合、ポーリングエンジンは、図４に関して後で詳しく述べるように、外部メールボックスと主メールボックスの間に配置される。
【００１０】
図１に戻ると、ポーリングエンジン１０８は、最初に、メールサーバ１１０のデフォルト・メール・ポーリング間隔を監視する。例えば、システムは、最初、すべてのメールボックスを１５分ごとにポーリングするように構成されている。図２に関して後で詳しく述べるように、ポーリングエンジン１０８は、適応ポーリングを使用して、リモートユーザのメールボックス内に最近活動があったかどうかを判断し、あった場合は、ポーリング間隔を短かくしてメールボックス・ポーリング頻度を高める。このようにポーリング頻度を高めることにより、ユーザに新しい電子メールがほぼ実時間で提供される。前述のように、各ポーリングで、ポーリングエンジン１０８は、内部データベースに記憶するために、メッセージＩＤの現行リストをメールサーバ１１２に要求する。ポーリングエンジン１０８は、現行リストを、以前のポーリングの結果としてデータベースに記憶されているメッセージＩＤのリストと比較する。データベースに記憶されている以前のメッセージＩＤのリストに現行リスト内のどのメッセージＩＤも見つからなかった場合、新しい電子メールであると見なされる。次に、モバイル装置１００とメールサーバ１１２の間でデータの同期が行われる。取り出された各電子メールに関して、その後のポーリングの際に再び取り出されるのを防ぐために、そのメッセージＩＤがデータベースに追加される。データベース内に現行リストのメッセージＩＤが見つかった場合は、昔のメッセージであると見なされ、無視される（すなわち、データベースは変更されず、同期も行われない）。
【００１１】
図２は、２００３年８月７日に出願された米国特許出願第６０／４９３，１１８号による適応ポーリング判定経路を示す流れ図である。プロセスは、最初、ポーリングエンジン１０８がその初期ポーリング状態２００（すなわち、デフォルトポーリング間隔）で動作する。ポーリングエンジン１０８は、メールサーバ１１２（または、他のデータサーバ１１０）に対するポーリング２０２をトリガし、着信または発信メールを確認する。ポーリング２０２は、あらかじめ確立されたデフォルトのポーリング間隔の結果として内部でトリガされてもよく、ユーザが自分のモバイル装置１００にあるメールを確認する結果として外部からトリガされてもよい。ポーリングの詳細については前に説明した（すなわち、ポーリングエンジンが、メッセージＩＤの現行リストを取り出し、それをデータベースなどにあらかじめ記憶されたリストと比較する）。次に、ポーリング２０２の結果により、プラス（positive）とマイナス（negative）２０６のどちらかとして分類されるイベント２０４がトリガされる。代替として、ユーザが自分のモバイル装置上のメッセージを確認する結果としてポーリングがトリガされた場合に、プラスイベント状態が生じる。プラスイベントはポーリング間隔２０８を短くし、マイナスイベントはポーリング間隔２１０を長くする。イベントが決定された後、システムは以後その新しいポーリング状態２１２で動作する。さらに他の活動がある場合は、新しいポーリング２０２がトリガされ、プロセスフローが繰り返される。
【００１２】
プラスイベントの例には、メールボックスに届いた新しいメッセージ、モバイル装置上のユーザ確認メッセージなどがある。マイナスイベントの例には、メールサーバ１１２にあるメールボックスに接続する無効なログインまたはパスワード確認、無線有効範囲外にあるモバイル装置、モバイル装置にメールを送付する試みの失敗などがある。
プラスイベントまたはマイナスイベント２０６に基づいて、ポーリングエンジン１０８は、ポーリング・レートを増減する。ポーリングエンジンが、いくつかの連続したマイナスイベントを経験した場合、ポーリング間隔は大幅に長くされ、メールサーバ１１２をポーリングする頻度が低くされ、その結果、そのポーリング間隔に無線で送られるデータが少なくなる。プラスイベントを受け取ると、ポーリング間隔は再び短くなる。
【００１３】
このシステムの結果、ユーザは、電子メールメッセージがモバイル装置により速く届くように見えることがあるという意味でより高い性能を感じることができる。例えば、デフォルトポーリング間隔が１５分ごとで、ユーザが頻繁な新しいメッセージを受け取る場合（すなわち、連続のプラスイベント）、ポーリングエンジン１０８は、ポーリング間隔を１分または２分ごとに高めることがある。この高いポーリングレートにより、メッセージがユーザのモバイル装置１００に届くのが早くなり、それにより感じる性能がより良好かつ高速になる。
【００１４】
米国特許出願第６０／４９３，１１８号は、特定のユーザとその利用パターンに基づいて、時刻、曜日、およびその時間における以前の使用活動の発見的比較に基づいて、ユーザの利用パターンに順応することができるポーリングエンジン１０８用のモジュールを開示している。このモジュールは、ユーザルーチンを学習し、ユーザのモバイル装置に対するポーリングのポーリング間隔を自動的に設定する。例えば、忙しいユーザはポーリングエンジン１０８を、自分のすべての到着メールをダウンロードするようにプラスイベント（高頻度ポーリング）に朝一番に設定し、一日が終わりに退出するまで別のプラスイベントに設定し、仕事後から日の出までマイナスイベント（低頻度ポーリング）を設定する。
【００１５】
次に図３に移ると、本発明の態様による、メールボックスポーリングプリエンプティブ（先取り）基準を含む図２の適応ポーリング判定経路のポーリング２０２に対する修正を示す。
ネットワーク輻輳をさらに減少させ、リモートメールボックスのポーリング性能を改善するために、ポーリングエンジン１０８は、ポーリング２０２の間に、メールボックス内の状態に何か変化があったかどうか（すなわち、新しい電子メールがないかどうか）を判定する。次に、この情報は、無駄にメッセージリストを取り出しそのリストをローカルデータベースと比較するのを防ぐためにプリエンプティブ基準として使用される。
【００１６】
ポーリング２０２の間、ポーリングエンジン１０８は、ローカルデータベースに、メールボックス内のメッセージ数、総メールボックスサイズ、最新メッセージＩＤなどの値を記憶する。「総メールボックスサイズ」基準は、メールボックス内のメッセージのサイズの合計（バイト）である（当技術分野では「メールボックス使用割当量（mailbox used quota）」とも呼ばれる）。次のポーリングにおいて、３０２で、ポーリングエンジン１０８は、現行のプリエンプティブ基準（例えば、現行のメールボックス内のメッセージ数、現行の総メールボックスサイズ、また最新メッセージＩＤ）を確認し、３０４で、それらの現行値を、ローカル・データベースにあらかじめ記憶された値と比較する。それらの基準が同じである場合は、メッセージＩＤリストを比較する必要はない（すなわち、３０６での判定が「ＮＯ」）。しかしながら、プリエンプティブ基準のどれかに変化があったときは（すなわち、３０６での判定が「ＹＥＳ」）、メッセージＩＤリストの比較が行われる３０８。
【００１７】
新しいメールを検出するために必ずしも３つの基準をすべて使用しなくてもよい。メールサーバ１１２からのこれらの基準（例えば、ＰＯＰやＩＭＡＰなどのメールプロトコル）の可用性により、基準のうちの１つまたは２つだけが使用されてもよい。しかしながら、多くの基準を使用するほど、メールボックス内にメールがないことを判定する精度が高くなる（すなわち、すべての基準が変化しないままである）。
【００１８】
また、図１と図３に関して述べた実施形態は、リモート装置１００により電子メールを更新するためのメールサーバ１１２内のユーザのメールボックスのポーリングに関するものであるが、本発明の原理を、メールサーバとメールクライアントのメールボックス間の同期に拡張することもでき、あるいは新しいメールの取り出し（すなわち、完全でない同期）と新しいメールの別のメールボックスまたはサービスへの転送または送信に拡張することもできる。
【００１９】
例えば、ユーザの外部メールボックスＰＯＰサーバをユーザのＩＳＰによって提供されるユーザの主メールボックスと一体化して、様々な外部メールボックスを１つの単一のメールボックスに統合することができ、それにより様々なメールボックスからの電子メールの管理と確認が簡略化される。この実施形態において、サービスプロバイダは、外部メールボックスをポーリングし、取り出した新しいメッセージを顧客の主メールボックスに転送する（例えば、送信する）ポーリングエンジン１０８を含む。
【００２０】
図４の実施形態によれば、モバイル装置１００の各ユーザは、無線ネットワーク１０２を介して無線サービスエンジン４００によってアクセス可能なモバイルメールボックスを提供される。前述のように、ユーザは、サービスエンジン４００に外部メールボックスにアクセスする適切なログインおよびパスワードを提供することによって、複数の外部メールボックスアカウント４０４、４０６など（例えば、ＰＯＰ、ＡＯＬ、Ｈｏｔｍａｉｌ、Ｙａｈｏｏなど）をその主アカウント４０２に統合することができる。ポーリングエンジン１０８が、主メールボックス４０２と外部メールボックス４０４、４０６などの間に配置されている場合、外部メールボックスからの新しい電子メールがポーリングされ、ユーザの主メールボックス４０２に送信／転送されるとすぐに、そのメッセージは、メールボックス４０２内で「新しい電子メール」として処理され、直ちにユーザのモバイル装置１００に「プッシュ」される。この場合、外部メールボックス４０４、４０６などのポーリングを調整するために、ポーリングエンジン１０８においてプリエンプティブ基準が使用される。ユーザの主メールボックス４０２とユーザのモバイル装置１００の間の同期は、無線サービスエンジン４００によって実行される。
【００２１】
本出願の以上の実施形態は、単なる例にすぎない。当業者は、特定の実施形態に対する修正、変更および変形を行うことができる。例えば、好ましい実施形態は、図２に示した適応ポーリング方法の改良として説明されているが、前述のプリエンプティブ基準を利用する方法は、トリガーイベント２０４、イベント状態の決定２０６またはポーリング間隔の変更２０８／２１０なしに実施できる。この変形において、デフォルトのポーリング間隔および／またはユーザ開始メッセージ送信／受信は、ポーリング２０２をトリガするために使用され、その後で、ユーザ装置またはメールボックスは、ポーリング間隔を修正することなく、更新されるか（すなわち、３０６の判定が「ＹＥＳ」）または先取りされる（すなわち、３０６の判定が「ＮＯ」）。ポーリング間隔の修正がない場合でも、この変形により、無駄なポーリングをなくすことにより性能が改善される。
【００２２】
これらのすべての修正および変形は、添付の特許請求の範囲によって定義されるような本発明の範囲を逸脱することなく可能である。
【図面の簡単な説明】
【００２３】
【図１】従来技術による適応電子メールポーリングシステムを示すブロック図である。
【図２】図１のシステムの適応ポーリング判定経路を示す流れ図である。
【図３】本発明の態様による、メールボックスポーリングプリエンプティブ基準を含む図２の適応ポーリング判定経路の修正を示す流れ図である。
【図４】本発明の代替の実施形態による、メールボックスポーリング基準を有する適応電子メールポーリングシステムを示すブロック図である。
【図１】
2005244951.tif 000003
【図２】
2005244951.tif 000004
【図３】
2005244951.tif 000005
【図４】
2005244951.tif 000006
【外国語明細書】
BACKGROUND
TECHNICAL FIELD
This application relates in general to wireless communication systems, and more particularly to an improved system and method of updating e-mail messages between a mail server and a mobile communication device or between multiple external mailboxes and main mailbox, using mailbox pooling pre-emptive criteria
DESCRIPTION OF THE RELATED ART
It is known in the art to provide email polling of a central mail server for updating messages between remote users and. For example, NovellO provides a NetMail XE solution whereby a mail server installed at a branch/remote office receives e-mail messages from an Internet Service Provider (ISP), and distributes the received messages to users at the branch/remote office over a local area network. A mail sub-domain at the ISP forwards all e-mail for the remote office to the mail server, which functions as a mail cache, sending e-mail to and receiving e-mail from the ISP. 
In the above-described system, the mail sub-domain at the ISP is polled by the mail server to send or receive messages, regardless of whether the mailbox has any new incoming or outgoing messages. In large systems, this polling method may consume large amounts of server resources and impact performance. The consumption of resources and performance impact is more pronounced when mailbox polling occurs on mobile devices over bandwidth-limited wireless networks. For example, if a mail server with 1000 mailboxes is polled and sends updates every 15 minutes to 1000 mail applications running on wireless devices, the wireless network will become severly congested resulting in significant service delays.
In order to address this shortcoming, a new polling method has been proposed for use with mobile communication devices, such as wireless data communicators. This new polling method, referred to as ‘adaptive polling’ provides mailbox updates based on a trigger event. Adaptive polling automatically determines the polling interval of the user based on his usage profile. A description of adaptive polling is set forth in U.S. Patent Application No. 60/493,118 filed August 7, 2003, the contents of which are incorporated by reference. In this system, a remote wireless subscriber can integrate external mailboxes (e.g. POP accounts) to his/her mobile wireless account via a POP polling engine that periodically polls new e-mails from the external accounts and places new e-mails into the user's mobile wireless account mailbox to be delivered to his/her mobile communication devices. When the polling engine polls an external mailbox, it requests the current list of message IDs from the external mailbox and checks each entry in the list to see if it has already been stored in a local database.  If the message ID is not found in the database, it is deemed to be a new e-mail and will be retrieved.  Once the new e-mail has been retrieved, the message ID is added to the database so as to prevent subsequent re-retrieval during subsequent polls.  If the message ID is found in the database, it is deemed to be an old message and is ignored. The adaptive algorithm varies the polling frequency based on the volume of e-mail traffic that the user is experiencing.However, for each external POP account, the polling engine has to be able to determine if the external account has new e-mails, and which ones are new. 
The adaptive polling technique set forth above suffers from performance problems in that every message ID must be checked against the database for every poll. Accordingly, the technique is not efficient for large mailboxes and large numbers of mailboxes.
In the present specification, the term “polling” is used to indicate detecting new messages, retrieving detected new messages and sending the messages to a device or mailbox.  Thus, polling differs from synchronization, by which messages on a user device/main mailbox are completely synchronized with messages in the user’s mailbox/multiple external mailboxes. Whereas polling may occur with relatively high frequency, full synchronization is performed periodically (at a time interval that is much longer than the polling interval), or in response to a user request via his/her device for full synchronization.  
SUMMARY OF THE INVENTION
According to an aspect of the present invention, mailbox pooling pre-emptive criteria are used by the polling engine to determine whether there has been no change to the mailbox (i.e. there are no new e-mails), in which case there is no need to compare the message list against the local database.
More particularly, the polling engine stores an indication of the number of messages in the mailbox, the total mailbox size (used storage size in bytes), and the last message ID from the last poll. In the next poll, the polling engine retrieves this information from the mailbox and checks against the values stored from the last poll.  If the information is the same, then there is need to compare the message ID list.  Whenever either the number of messages in the mailbox, or the mailbox size (used storage size in bytes), or last message ID has changed, then the full comparision of the message ID list is performed.
Other aspects and features of the present application will become apparent to one of ordinary skill in the art upon reviewing the following description of specific embodiments of the present invention in conjunction with the accompanying figures.
DETAILED DESCRIPTION OF THE DRAWINGS
Referring now to the drawings, FIG. 1 is a block diagram illustrating the system for adaptive polling set forth in U.S. Patent Application No. 60/493,118, referred to above. The components of the adaptive polling system consist of a plurality of wireless devices 100 for remote communicating with an enterprise (e.g. corporate office, ISP, etc) over a wireless network 102 and the Internet 104. The enterprise includes a polling engine 108 and a variety of data servers 110 connecting to the polling engine 108, such as a mail server 110, application server 112, web server 114, and other comparable devices.
The polling engine 108 is located behind the corporate firewall 106 of the enterprise, for ensuring secure communication between the mobile device 100 and the data servers 110.
As discussed above, polling engine 108 determines adaptive polling rates based on the usage profile of each user. Although the preferred embodiment is described in terms of polling the mail server 112, it will be understood by a person skilled in the art that the polling engine can also be configured to poll for services and events from other ones of the data servers 110 (e.g. application server 114, web server 116, etc.). Moreover, the principles of the invention my be applied to polling for mail from a plurality of external mailboxes, where the polling engine is disposed between the external mailboxes and a main mailbox, as discussed in greater detail below with reference to FIG. 4.
Returning to FIG. 1, the polling engine 108 initially monitors the default mail-polling interval of the mail server 110. For example, the system may initially be configured to poll all mailboxes once every 15 minutes.  As discussed in greater detail below with reference to FIG. 2, the polling engine 108 uses adaptive polling to determine if there has been recent activity in the remote user's mailbox, in which case the polling interval is shortened to increase the frequency of mailbox polling. This increase in polling frequency provides the user with new e-mails in a near real-time fashion.
As discussed above, on each poll the polling engine 108 requests a current list of message IDs from the mail server 112, for storage in an internal database. The polling engine 108 compares the current list to the list of message IDs stored in the database as a result of a previous poll. If any message ID in the current list is not found in the list of previous message IDs stored in the database, it is deemed to be a new e-mail. Synchronization of data then takes place between the mobile device 100 and the mail server 112. For each retrieved e-mail, the message ID is added to the database so as to prevent subsequent re-retrieval during the next poll. If a message ID in the current list is found in the database, it is deemed to be an old message and is ignored (i.e. the database remains unchanged and no synchronization takes place). 
FIG. 2 is a flow diagram illustrating an adaptive polling decision pathaccording to U.S. Patent Application No. 60/493,118, filed August 7, 2003. The process starts with the polling engine 108 functioning in its initial polling state 200 (i.e., the default polling interval). The polling engine 108 triggers a poll 202 to the mail server 112 (or other data server 110), which checks for incoming and outgoing mail. The poll 202 may be triggered internally as a result of the default polling interval previously established, or externally as a result of the user checking for mail at his/her mobile device 100.  The details of the poll are set forth above (i.e. the polling engine retrieves and compares the current list of message IDs with the list previously stored in the database, etc.) The result of the poll 202 then triggers an event 204 that is classified as either positive or negative 206. Alternatively, in the event that the poll is triggered as a result of the user checking messages on his/her mobile device, a positive event state occurs. A positive event increases the polling interval 208 and a negative event decreases the polling interval 210. Once the event is determined, the system henceforth operates in its new polling state 212. If there is further activity, a new poll is triggered 202 and the process flow repeats itself.
Examples of positive events include a new message arriving in the mailbox, the user checking messages on the mobile device, etc. Examples of negative events include an invalid login or password confirmation to connect to the mailbox at the mail server 112, the mobile device being out of wireless coverage range, failure of an attempt to deliver mail to the mobile device, etc.
Based on the positive or negative event 206, the polling engine 108 either increases or decreases the polling rate. If the polling engine experiences several successive negative events, the polling interval will be significantly lengthened and will poll the mail server 112 less frequently, resulting in less data sent wirelessly over that polling interval. Once a positive event is received, the polling interval increases again. 
A consequence of the system is that the user may perceive better performance in the sense that e-mail messages may seem to arrive more quickly at the mobile device. For example, if the default polling interval is once every 15 minutes and the user receives frequent new messages (i.e. successive positive events), the polling engine 108 may increase the polling interval to once every 1 or 2 minutes. With this increased polling rate, messages arrive more quickly at the user’s mobile device 100, thereby providing a perception of better and faster performance.
Based on the specific users and their usage patterns, U.S. Patent Application No. 60/493,118, discloses a module for the polling engine 108 that can adapt to a user’s usage pattern, based on the time of day, day of the week, and heuristic comparison of previous usage activities at that time. The module learns the user’s routine and automatically configures the polling interval for polls to the user’s mobile device. For example, a busy user can have the polling engine 108 set a positive event (increased polling) first thing in the morning to download all of his incoming messages, another positive event before he leaves for the end of the day, and set negative events (decreased polling) after work until sunrise.
Turning now to FIG. 3, a modification is shown to the poll 202 of the adaptive polling decision path of FIG. 2 to include mailbox pooling pre-emptive criteria, according to an aspect of the present invention.
In order to further reduce network congestion and improve remote mailbox polling performance, the polling engine 108 determines, during the poll 202, if there has been any change of state in the mailbox (i.e. no new e-mails). This information is then used as pre-emptive criteria to prevent unnecessary retrieval of the message list and comparison thereof against the local database.
During the poll 202, polling engine 108 stores values in the local database representing pre-emptive criteria, such as the number of messages in the mailbox, the total mailbox size, and the last message ID. The “total mailbox size” criteria is the total size (in bytes) of messages in the mailbox (also referred to in the art as “mailbox used quota”). In the next poll, at 302, the polling engine 108 ascertains the current pre-emptive criteria (e.g. current number of messages in the mailbox, current total mailbox size, and last message ID), and at 304 compares these current values against the values previously stored in the local database.  If these criteria are the same, then there is no need to compare the message ID list (i.e. a “no” decision at 306).  However, whenever there has been a change in any one of the pre-emptive criteria (i.e. a “yes” decision at 306), then the comparision of message ID list is performed 308.
It should be noted that it is not necessary for all three criteria to be used for detecting new mails. Depending on the availability of these criteria from the mail server 112 (mail protocol - e.g. POP, IMAP, etc.) , only one, or two of the criteria may be used.  However, the use of more criteria results in better precision in the determination that the mailbox has no mail (i.e. all criteria remain unchanged).
Also, whereas the embodiments discussed with reference to FIG. 1 to FIG. 3, relate to polling of a user’s mailbox in mail server 112 for updating of emails with remote device 100, the principles of the invention may be extended to synchronization between a mailbox in a mail server and a mail client, or to retrieiving new mail (i.e. not full synchronization) and forwarding or sending the new mail to another mailbox or service.
For example, a user’s external mailbox(es) POP server(s) can be integrated with his/her main mailbox provided by the user’s ISP, to consolidate the different external mailboxes into one single mailboxand thereby simplify managing and checking of emails from the different mailboxes. In this embodiment, the service provider incorporates polling engine 108 to poll the external mailboxes and forward (e.g. send) the retrieved new messages to the customer’s main mailboxes.
According to the embodiment of FIG. 4, each user of a mobile device 100 is provided with a mobile mailbox that is accessible via a wireless service engine 400 over the wireless network 102. As discussed above, it is possible for a user to integrate multiple external mailbox accounts 404, 406, etc. (e.g. POP, AOL, Hotmail, Yahoo, etc.) to their main account 402, by providing the service engine 400 with appropriate logins and passwords to access the external mailboxes.  With the polling engine 108 disposed between the main mailbox 402 and the external mailboxes 404, 406, etc.,  as soon as new e-mails from the external mailboxes are polled and sent/forwarded to the user’s main mailbox 402, the messages are treated as “new e-mails” within the mailbox 402 and are immediately “pushed” to the user’s mobile device 100.  In this case, the pre-emptive criteria are used in the polling engine 108 to regulate polling of the external mailboxes 404, 406, etc. Synchronization between the user’s main mailbox 402 and the user’s mobile device 100 is performed by the wireless service engine 400.
The above-described embodiments of the present application are intended to be examples only.  Those of skill in the art may effect alterations, modifications and variations to the particular embodiments. For example, although the preferred embodiment is set forth as an improvement to the adaptive polling method shown in FIG. 2, it is contemplated that the method of employing pre-emptive criteria set forth above may be implemented without any trigger event 204, determination of event state 206 or change in polling interval 208/210. In this variation, the default polling interval and/or user initiated message send/receive are used to trigger the poll 202 following which the user device or mailbox is updated (i.e. a “yes” decision at 306) or pre-empted (i.e. a “no” decision at 306), without modifying the polling interval. Even without modification of the polling interval, this variation results in improved performance by eliminating unnecessary polling.
All such modifications and variations are possible without departing from the scope of the invention as defined by the claims appended hereto.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the present application will now be described, by way of example only, with reference to the attached figures, wherein:
FIG. 1 is a block diagram illustrating a system for adaptive e-mail polling, according to the prior art;
FIG. 2 is a flow diagram illustrating an adaptive polling decision path for the system of FIG. 1; and
FIG. 3 is a flow diagram illustrating a modification of the adaptive polling decision path of FIG. 2 incorporating mailbox pooling pre-emptive criteria, according to an aspect of the present invention.
FIG. 4 is a block diagram illustrating a system for adaptive e-mail polling with mailbox pooling pre-emptive criteria, according to an alternative embodiment of the invention.
Same reference numerals are used in different figures to denote similar elements.
1. In an adaptive polling method for updating data between at least one data server and a mobile communication device, the improvement comprising:
retrieving current pre-emptive criteria from said at least one data server;
comparing said current pre-emptive criteria to previously stored pre-emptive criteria; and
in the event said current pre-emptive criteria does not equal said previously stored pre-emptive criteria then updating said data between said data server and mobile communication device, and otherwise pre-empting said updating of said data between said data server and mobile communication device.
2. The improvement of claim 1, wherein said data server is a mail server with a mailbox for storing e-mails identified by respective message IDs, and said pre-emptive criteria are selected from the group comprising number of messages in said mailbox, mailbox size, and most recent message ID.
3. In an adaptive polling method for updating e-mails between a main mailbox in a mail server and multiple external mailboxes, the improvement comprising:
retrieving current pre-emptive criteria from said multiple mailboxes;
comparing said current pre-emptive criteria to previously stored pre-emptive criteria for respective ones of said multiple mailboxes; and
in the event said current pre-emptive criteria does not equal said previously stored pre-emptive criteria then updating said e-mails between said main mailbox and said multiple mailboxes, and otherwise pre-empting said updating of said e-mails between said main mailbox and said multiple mailboxes.
4. The improvement of claim 3, wherein said e-mails are identified by respective message IDs, and said pre-emptive criteria are selected from the group comprising number of messages in respective ones of said external said mailboxes, mailbox size of respective ones of said external said mailboxes, and most recent message ID in respective ones of said external said mailboxes.
A wireless communication system comprising:
a mobile device accessible via a wireless network;
a mobile mailbox for storing user e-mails;
a wireless service engine for controlling data communication over said wireless network between said mobile device and said mobile mailbox;
a plurality of external user mailboxes; and
a polling engine in communication with said mobile mailbox and said plurality of external user mailboxes, for retrieving current pre-emptive criteria from said plurality of external user mailboxes, comparing said current pre-emptive criteria to previously stored pre-emptive criteria for respective ones of said plurality of external user mailboxes, and   in the event said current pre-emptive criteria does not equal said previously stored pre-emptive criteria then updating said e-mails between said mobile mailbox and said plurality of external user mailboxes, and otherwise pre-empting said updating of said e-mails between said mobile mailbox and said plurality of external user mailboxes.
1. ABSTRACT
Mailbox pooling pre-emptive criteria is set forth for use in an adaptive polling system for synchronizing data between a mail server and a mobile communication device. The polling engine stores an indication of the number of messages in the mailbox, the total mailbox size (i.e. the used storage size in bytes), and the last message ID from the last poll. In the next poll, the polling engine retrieves this information from the mailbox and checks against the values stored from the last poll.  If the information is the same, then there is no need to compare the message ID list.  Whenever either the number of messages in the mailbox or the mailbox size or last message ID has changed, then the full comparision of the message ID list is performed. 
2. Representative Drawing
Fig. 1
【図１】
2005244951.tif 000007
【図２】
2005244951.tif 000008
【図３】
2005244951.tif 000009
【図４】
2005244951.tif 000010