(57)【要約】データ処理デバイス１３０がメッセージングサービス１２０と完全に同期するシステムが開示される。システムの一実施例は、無線データ処理デバイス、ユーザのためのメッセージ１０２及び他の情報１０２を保持するメッセージングサービス、並びに前記メッセージ及び他の情報の同期を無線デバイス及びメッセージングサービス間で保持する同期化ロジックを含む。
2005521938.tif 000002
【特許請求の範囲】
【請求項１】
無線データ処理デバイスと、
ユーザのためにデータオブジェクトを保持するメッセージングサービスと、
無線ネットワーク上の前記無線デバイスと前記メッセージングサービスとの間で、前記データオブジェクトの同期を保持する同期手段とを備え、
前記同期手段は、前記サービスで生じるデータオブジェクトのトランザクション更新を、前記無線デバイスに送信するとともに、前記無線デバイスで生じるデータオブジェクトのトランザクション更新を前記サービスに送信することを特徴とするシステム。
【請求項２】
前記データオブジェクトは、Ｅメイルメッセージを含むことを特徴とする請求項１に記載のシステム。
【請求項３】
前記データオブジェクトは、電子カレンダーデータを含むことを特徴とする請求項２に記載のシステム。
【請求項４】
前記データオブジェクトは、予定事項リストデータを含むことを特徴とする請求項３に記載のシステム。
【請求項５】
前記データオブジェクトは、接触情報を含むことを特徴とする請求項４に記載のシステム。
【請求項６】
前記同期手段は、さらに、
前記メッセージ及び、前記無線デバイスと前記サービスとの間で送信される他の情報を圧縮する圧縮手段を備えることを特徴とする請求項１に記載のシステム。
【請求項７】
前記同期手段は、さらに、
前記無線データ処理デバイスと前記メッセージングサービスとの間でデータオブジェクトのトランザクション更新を伝送する前に、前記更新の集合を合体させるバッチ処理手段を備えることを特徴とする請求項１に記載のシステム。
【請求項８】
前記データ処理デバイスは、前記ユーザにより、前記データ処理デバイスからのメッセージングサービスの構成パラメータを修正することができるようにする制御手段を含むことを特徴とする請求項１に記載のシステム。
【請求項９】
前記サービスが機能するネットワークに対して前記無線デバイスを直接つなげることなく、前記サービス及び前記無線データ処理デバイスを無線で完全同期させることを特徴とする請求項１に記載のシステム。
【請求項１０】
前記同期手段は、Ｅメイルフォルダ間のメッセージ移動を含むメッセージトランザクション更新を同期させることを特徴とする請求項１に記載のシステム。
【請求項１１】
前記メッセージトランザクション更新の１つは、前記ユーザが前記無線データ処理デバイスからのメッセージを閲覧したという指示を含むことを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記同期手段は、さらに、
前記サービスが機能する顧客側で構成される第１のバッチ処理手段と、
前記無線データ処理デバイスと前記顧客サイトとの間を通信で結んだデータセンターで構成された第２のバッチ処理手段とを含むことを特徴とする請求項１に記載のシステム。
【請求項１３】
前記第１のバッチ処理手段は、前記データオブジェクトトランザクションを伝送する前に、前記顧客サイトでユーザによって同時に実行されたデータオブジェクトトランザクションを結び付け、かつ第２のバッチ処理手段は、前記ユーザによって同時には実行されていないデータオブジェクトトランザクションを結び付けることを特徴とする請求項１２に記載のシステム。
【請求項１４】
前記ユーザによって同時にされたデータオブジェクトトランザクションは、前記ユーザによって同時に削除されたＥメイルメッセージの集合を含むことを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記結び付けられたデータオブジェクトトランザクション更新が、正しい連続した順序で個々の宛先において実行されることを保証する、正しい順序の配信手段をさらに備えることを特徴とする請求項７に記載のシステム。
【請求項１６】
前記正しい順序の配信手段は、前のすべてのトランザクション更新を受信するまで、前記無線データ処理デバイスが特定のトランザクション更新を実行できないようにすることを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記同期手段は、さらに、
前記無線データ処理デバイスと前記メッセージングサービスとの間の新たなデータオブジェクトに関する可能性のある複数の識別コードを割当てる、データオブジェクト識別（ＩＤ）コード割当て手段を備えることを特徴とする請求項１に記載のシステム。
【請求項１８】
前記無線デバイスで生成されたデータオブジェクトに対して負のＩＤコードを割当て、前記メッセージングサービスで生成されたＩＤコードに対して正のＩＤコードを割当てることを特徴とする請求項１７に記載のシステム。
【請求項１９】
前記同期手段は、さらに、
特定のデータオブジェクトのコピーに対する、前記無線デバイス及び前記サービスの両方での最新の修正が、１以上の不一致解決パラメータに基づいて論理的に解決されることを保証するデータオブジェクト不一致解決手段を備えることを特徴とする請求項１に記載のシステム。
【請求項２０】
前記データオブジェクト不一致解決手段は、データオブジェクトに対する各修正に関連した新たなバージョン番号を生成することを特徴とする請求項１９に記載のシステム。
【請求項２１】
複数の第１識別コードを無線デバイスに関連づけし、かつ複数の第２識別コードをメッセージサービスに関連づけし、前記無線デバイスは、新たなデータオブジェクトを生成するときには前記複数の第１識別コードからのコードのみを使用し、そして、前記メッセージサービスは、新たなデータオブジェクトを生成するときには前記複数の第１識別コードからのコードのみ使用し、
新たなデータオブジェクトが前記メッセージサービスで生成されるとき、前記無線デバイスに対して前記新たなデータオブジェクトを含む更新を自動的に伝送し、そして新たなデータオブジェクトが前記無線デバイスで生成されるとき、前記メッセージサービスに対して前記新たなデータオブジェクトを含む更新を自動的に伝送することを含む無線デバイスとサービスとを同期させる方法。
【請求項２２】
前記メッセージサービスで、前記データオブジェクトに対する複数のトランザクションを合体させ、
前記データオブジェクトに対する合体された複数のトランザクションをまとめて前記無線デバイスに伝送することを含む請求項２１に記載の方法。
【請求項２３】
前記メッセージが機能する顧客サイトで、ユーザによって同時に実行されたデータオブジェクトにトランザクションを結び付け、
前記データオブジェクト及び前記結び付けられたトランザクションへ、前記データオブジェクトへ、前記顧客サイトと前記無線デバイスとの間で通信的につながったデータセンターへ、個々のトランザクションを伝送することをさらに含む請求項２１に記載の方法。
【請求項２４】
前記無線デバイスは、前記データオブジェクトに対する前記複数のトランザクションの全部でないが１つ以上を受信し、
前記無線デバイスは、前記複数のトランザクションのうち１つ以上の再伝送を要求することをさらに含む請求項２２に記載の方法。
【請求項２５】
前記トランザクションを前記データオブジェクトに連続して番号付けすることをさらに含み、
前記無線デバイスは、前記１以上のトランザクションが受信され且つ実行されるまで、前記データオブジェクトに対する前記１以上のトランザクションの後に生じるトランザクションを実行することを控えることを特徴とする請求項２４に記載の方法。
【請求項２６】
前記データオブジェクトの幾つかは、Ｅメイルメッセージを含むことを特徴とする請求項２１に記載の方法。
【請求項２７】
前記トランザクションは、新たなＥメイルメッセージを送信することを特徴とする請求項２６に記載の方法。
【請求項２８】
前記トランザクションは、Ｅメイルメッセージを削除することを特徴とする請求項２７に記載の方法。
【請求項２９】
前記無線デバイス及び／又は前記サービスに対するトランザクションの前に、前記データオブジェクトを圧縮することをさらに含む請求項２１に記載の方法。
【請求項３０】
前記サービスで及びア無線デバイスで同時に修正されたデータオブジェクト間でバージョン不一致を検出し、
前記バージョン不一致を解決する１以上の不一致解決技術を用いることをさらに含む請求項２１に記載の方法。
【請求項３１】
前記不一致解決技術の１つは、前記サービスで実行された修正を保持し、且つそれに応じて前記無線デバイスを更新することを含む請求項３０に記載の方法。
【請求項３２】
前記複数の第１及び第２データオブジェクト識別コードを、前記メッセージサービスで典型的に用いられる識別コードの組にマッピングすることをさらに含む請求項２１に記載の方法。
【請求項３３】
前記メッセージサービスは、マイクロソフトエクスチェンジ（Microsoft Exchange）であることを特徴とする請求項３２に記載の方法。
【請求項３４】
前記サービスと前記無線デバイスとの間で通信的につながったインタフェースを備え、
前記インタフェースは、前記サービスがインストールされ且つ構成された顧客サイトで実行され、前記サービスでのデータオブジェクトトランザクションに反応して、前記無線デバイスに対してデータオブジェクトのトランザクション更新を提供するとともに、前記無線デバイスでのデータオブジェクトトランザクションに反応して、前記サービスに対してデータオブジェクトのトランザクション更新を提供するようにインストール且つ構成されることを特徴とする無線デバイスとサービスとを同期させるシステム。
【請求項３５】
前記無線デバイス及び／又は前記インタフェースに対して伝送する前に、前記データオブジェクトトランザクション更新をまとめてグループ化するバッチ処理ロジックをさらに含むことを特徴とする請求項３４に記載のシステム。
【請求項３６】
前記バッチ処理ロジックは、前記インタフェースで実行される第１のレベルのバッチ処理ロジックを備え、
前記第１のレベルのバッチ処理ロジックは、前記データオブジェクトのトランザクション更新を伝送する前に、ユーザによって同時に実行されたデータオブジェクトのトランザクション更新をグループ化し、
前記データセンターで実行される第２のレベルのバッチ処理ロジックをさらに備え、
前記第２のレベルのバッチ処理ロジックは、前記無線デバイスに前記データオブジェクトのトランザクション更新を伝送する前に、前記ユーザによって個々に実行されたデータオブジェクトのトランザクション更新をグループ化することを特徴とする請求項３５に記載のシステム。
【請求項３７】
前記インタフェースは、前記サービスで２以上のデータオブジェクトトランザクションを、前記無線デバイスに伝送されるべき等価な単一のデータオブジェクトトランザクションに合体させることを特徴とする請求項３４に記載のシステム。
【請求項３８】
前記２以上のデータオブジェクトトランザクションは、前記サービス上のソース場所からデータオブジェクトを削除する削除コマンド、及び宛先場所に前記データオブジェクトを再生成する新規コマンドを含み、前記無線デバイスに伝送された単一のデータオブジェクトトランザクションは、移動コマンドであることを特徴とする請求項３７に記載のシステム。
【請求項３９】
前記移動コマンドは前記データオブジェクトの識別子、前記ソース場所の識別子、及び前記宛先場所の識別子を含むことを特徴とする請求項３８に記載のシステム。
【請求項４０】
前記削除コマンドが前記新たなコマンドより前に行われる場合、前記インタフェースは前記データオブジェクトのためのサービスを探索し、前記削除コマンドに続く前記サービス上の前記新たな場所にあるオブジェクトを識別することにより、前記２つのデータオブジェクトトランザクションが単一の移動コマンドと等価であることを判断することを特徴とする請求項３８に記載のシステム。
【請求項４１】
前記新規コマンドが前記削除コマンドより前に行われる場合、前記インタフェースは、前記データオブジェクトが前記新規コマンドより前に異なる場所にすでに存在していたかどうかを判断するデータオブジェクト識別コードを有するテーブルを探索することによって、前記２つのデータオブジェクトトランザクションが単一の移動コマンドと等価であることを判断することを特徴とする請求項３８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークデータサービス分野全般に関係し、より詳細には、無線メッセージングサービスによる無線データ処理デバイスを同期させる装置及び方法に関する。
【背景技術】
【０００２】
（関連分野の説明）
様々な無線データ処理機器が、過去何年にもわたって導入されてきた。これらには、手持ち式のPalm（Ｒ） VIIxのような無線式の携帯型情報端末（ＰＤＡ）、データ処理能力を備えたセル式（移動）電話（例えば、無線アプリケーション・プロトコル（ＷＡＰ）サポート）、そして最近では、リサーチ・イン・モーション（ＲＩＭ）TMによって開発されたBlackberryTM無線ページャーのような無線メッセージングデバイスが含まれる。
【０００３】
Palmデバイスなどの携帯型情報端末は、まさに限定された無線メッセージング能力（例えば、インスタント・メッセージング及び基本的なインターネットアクセス）を提供するのが典型的である。例えば、これらのデバイスは、インターネットサービス・プロバイダ（ＩＳＰ）経由によるインターネットへの接続、又はＥメイルメッセージをチェックする会社サーバへの接続をユーザが手作業で確立する必要がある。
【０００４】
RIM Blackberryなどの会社メッセージングシステムは、より広範囲なメッセージング能力を提供するが、これらのシステムには重大な制限がある。特に、これらのシステムは、ある状況に遭遇するときのみメッセージを無線デバイスに宛先変更する、Ｅメイル「宛先変更」又は「転送」技術を用いる。「宛先変更イベント」と称されるこれらの状況は、例えば、ユーザが会社のデスクトップ機で仕事をしないことの表示（例えば、デスクトップ架台からの無線デバイスの撤去、デスクトップで作動するスクリーンセーバなど）、又は（例えば、無線デバイス又は会社のデスクトップ機経由で）ユーザによって開始された手作業の宛先変更命令を含むことができる。このようなメッセージ宛先システムは、米国特許Ｎｏ．６,２１９,６９４（「ホストシステムから共有電子アドレスを有する移動データ通信デバイスへ情報をプッシュするシステム及び方法」）に記載されている。
【０００５】
結果として、これらのシステムは、（実際には、）無線デバイスと会社のＥメイルデータベースとの間の完全な同期を提供することができない。例えば、メッセージは、ある状況の下で（例えば宛先変更イベントを転送する）、無線デバイスに宛先変更されるので、任意の時点で、無線デバイスは不完全な集合のＥメイルデータを含むかもしれない。さらに、メッセージがアクティブで無線デバイスに転送される場合、無線デバイス及びＥメイルデータベースに格納されたＥメイルデータは、正確には同期されていない。例えば、無線デバイスで実行されるあるタイプのトランザクション、即ち、ユーザが一覧するメッセージ、メッセージの削除、あるフォルダから別のフォルダへのメッセージ移動などであるが、これらはＥメイルサービスにおいて無線で更新されない。
【０００６】
さらに、メッセージの送受信などの基本的なＥメイル機能だけが、無線デバイスで制御される。より高度なＥメイル管理機能は、ユーザのデスクトップで設定されなければならない（例えば、Ｅメイルフィルタの構成、Ｅメイル署名の発信、パスワードなどのセキュリティ設定など）。
【０００７】
加えて、従来のメッセージングシステムは、ユーザがオフィスにいるとき、デバイスに接続しなければならない会社のデスクトップを必要とする。この問題は、単に会社のデスクトップが必要であるというのではなく、会社のデスクトップが、ソフトウェアで構成されるとともに無線デバイスに対して直接通信することができる所有者の「架台」でなければならない。
【０００８】
したがって、要求されることは、無線デバイスとメッセージングサービスとの間の完全な同期及び管理（例えば、会社のＥメイルアカウント）を提供するシステム及び方法である。さらに要求されることは、会社のデスクトップを必要とせず、又は会社のデスクトップでインストールされ且つ実行される任意のソフトウェアを必要としないＥメイル送受信用の無線装置である。
【０００９】
（優先権主張）
本出願は、２００１年８月７日に出願された「バッチ処理データトランザクションによって帯域幅を保存する装置及び方法」と題する同時継続出願の一部継続出願である。
【００１０】
（概要）
データ処理デバイスとメッセージングサービスとが完全に同期するシステムが開示される。システムの一実施例は、無線データ処理デバイス、ユーザのメッセージ及び他の情報を保持するメッセージングサービス、及び前記メッセージ及び他の情報の同期を無線デバイス及びメッセージングサービス間で保持する同期化ロジックを含む。
【００１１】
（発明の詳細）
説明のために、以下の記載では本発明の完全な理解をもたらす多数の特定した詳細を述べる。しかしながら、当業者であればこれら特定の詳細なしに実行可能であることは明らかである。他の例では、本発明の不明瞭さを避けるためにブロック図の形式で、よく知られた構造及び装置を示す。
【００１２】
＜典型的なネットワークアーキテクチャ＞
図１は、ここで述べる圧縮技術を実行するネットワークアーキテクチャの一実施例である。図１に示された“顧客サイト”１２０は、複数のサーバ１０３及びクライアント１１０が通信する任意のローカルエリア又はワイドエリアネットワークである。例えば、顧客サイトは、一企業によって管理されるすべてのサーバ及びクライアントを含むことができる。様々な異なるメッセージング及びグループウェアサービス１０２（例えば、Ｅメイル、インスタント・メッセージング、カレンダー記録など）をネットワークユーザに提供するようサーバ１０３を構成することができる。一実施例では、これらのサービスはマイクロソフトエクスチャンジ（Microsoft ExchangeTM）によって提供される。しかしながら、本発明の基本的な原理は、特定のメッセージング／グループウェアプラットフォームに限定されない。
【００１３】
本発明の一実施例において、インタフェース１００は、サービス１０２によって管理されるデータオブジェクト（例えば、Ｅメイル、インスタント・メッセージング、カレンダー記録など）を、（図１に無線デバイス１３０として表された）複数の無線データ処理デバイスへ、外部データネットワーク１７０及び／又は無線サービスプロバイダーネットワーク１７１経由で転送する。
【００１４】
例えば、サービス１０２がＥメイルデータベースを含む場合、インタフェース１００はサービス１０２のユーザメイルボックスに到着する新たなＥメイルを、（ネットワーク１７０及び／又は１７１を越えて）当該ユーザの無線データ処理デバイスへ送信する。あるいは又はこれに加えて、サービス１０２は、そのＥメイルを要求のあったユーザのローカルコンピュータ（クライアント１１０等）に提供することができる（つまり、その結果、ユーザは外出していれば彼らの無線デバイス１３０で、オフィスにいれば彼らのパソコン１１０でＥメイルを受信するだろう）。逆に、ユーザの無線データ処理デバイス１３０から送信されたＥメイルメッセージは、インタフェース１００を介してサービス１０２へ送信される。
【００１５】
一実施例において、インタフェース１００は、特定のサービス１０２で作用するのに適したソフトウェアモジュールである。しかしながら、インタフェース１００は、本発明の基本的な原理を満たしながら、ハードウェア又はハードウェア及びソフトウェアの任意の組み合わせで実行されることに留意されたい。
【００１６】
一実施例おいて、外部データネットワーク１７０は、インタフェース１００と無線デバイス１３０との間でデータを送信する、複数のサーバ／クライアント（不図示）及び他のネットワーキングハードウェア（例えば、ルータ、ハブなど）で構成される。一実施例では、インタフェース１００は、データを、無線デバイス１３０を識別するアドレスを含む１以上のパケットにカプセル化する（例えば、２４ビットのMobitexアクセス番号「ＭＡＮ＃」など）。外部データネットワーク１７０は、パケットを無線サービスプロバイダーネットワーク１７１へ送信し、次に、無線サービスプロバイダーネットワーク１７１は、無線通信リンク上のパケット（又はそこに含まれるデータ）を無線デバイス１３０へ送信する。一実施例において、無線サービスプロバイダーネットワークは、双方向ページングネットワークである。しかしながら、本発明の基本的な原理を満たしながら、様々な他のネットワークタイプ（例えば、ＣＤＭＡ２０００、ＰＣＳなど）を実行することもできる。
【００１７】
同じ構成で、無線サービスプロバイダーネットワーク１７１及び外部データネットワーク１７０（及び関連するインタフェース１００）を支配／操作させることができたり、或いはまた、外部データネットワーク１７０の支配者／操作者は、無線サービスプロバイダーネットワークから無線サービスを借りる（リースする）ことができる。本発明の基本的な原理は、特定のサービス取決めに限定されない。
【００１８】
本発明の一実施例において、サービス１０２（例えば、Ｅメイルデータベース）が無線データ処理デバイス１３０と十分に同期する。このため、無線デバイス１３０で実行される任意の動作が、サービス１０２で自動的に更新され、且つサービス１０２で生じる任意のトランザクションがデバイス１３０で自動的に反映される。このタイプの同期化更新は、デバイス構成の変更に限定されるものではないが、カレンダー更新、Ｅメイルメッセージ更新、インスタントメッセージ、予定事項リストの更新、及び／又は他のタイプの個人情報管理トランザクション或いは企業データ管理トランザクション（以後、“メッセージトランザクション”と称する）を含むことができる。一例として、ユーザがデバイス１３０を用いてＥメイルメッセージを閲覧するとき、ユーザがメッセージを閲覧したという知らせが（インタフェース１００経由で）サービス１０２へ送信される。したがって、ユーザがその後にクライアント１１０を介してＥメイルに接続する場合、既に閲覧したＥメイルとして表れるだろう。メッセージ削除、アクティビティを整理する（例えば、メッセージを特定のフォルダーに移動させる）、メッセージ応答、ミーティング確認／追加などの他のアクションが、サービス１０２へ自動的に反映される。これにより、（使用されるのであれば）サービス１０２、デバイス１３０及び／又はクライアント１１０間の完全な同期をもたらす。
【００１９】
最新のメッセージシステムは、完全な無線デバイス同期を提案していない。これらのシステムは、受信された所定のタイプの同期化更新にデバイスが結び付けられる「架台（cradle）」付きのデスクトップコンピュータをユーザが有することを要求する。これに対する１つの理由は、先行システムがかなり非効率な方法でメッセージトランザクションを処理し、限定的な圧縮技術のみを用いるということであり、これにより、完全な同期化を不可能にさせる。完全な無線同期を理解するために、本発明の実施例は、以下の圧縮及び／又はメッセージ処理技術を１つ以上用いる。
【００２０】
＜状態に基づく圧縮＞
図２は、無線データ処理デバイス１３０及びインタフェース１００の一態様を詳細に示している。一実施例において、データ処理デバイス１３０は、ローカルデータ圧縮／伸長モジュール２２５（以後、“コーディックモジュール２２５”と称する）、及びローカルメッセージキャッシュ２１０より構成される。ローカルコーディックモジュール２２５は、ここで述べる様々な圧縮技術を用いて、出て行くデータを圧縮し、入ってくるデータを伸長する。
【００２１】
ローカルメッセージキャッシュ２１０は、入ってくるメッセージを一時的に格納するための入力待ち行列２１１と、出て行くメッセージを格納する出力待ち行列２１２から構成される。分離された論理ユニットとして図２に示されているが、キャッシュ置き換え方針に従って入ってくるメッセージと出て行くメッセージの両方を格納する単一ブロックのメモリだけからローカルメッセージキャッシュ２１０を構成することができる。一実施例において、入れ先出し法（ＦＩＦＯ）の置き換え方針を用いながら、入力待ち行列及び／又は出力待ち行列のメッセージを管理する。しかしながら、本発明の基本的な原理を満たしながら、様々な他のキャッシュ置き換え技術を用いることができる。例えば、最長時間末参照（ＬＲＵ）方針を実行することができ、その場合、ローカルコーディックモジュール２２５により、使用頻度の少ないメッセージが、使用頻度が高いキャッシュよりも時間間隔が短いキャッシュ内に格納される。後述するように、ローカルコーディックモジュール２２５により使用頻度の高いメッセージが、共通のＥメイルスレッドの部分を形成するメッセージを頻繁に含むことができるのに対して、使用頻度の少ないメッセージがジャンクメール又は“スパム”（つまり、一方的に送られて来るメッセージトランザクションが発生すること）を含むことができる。
【００２２】
一実施例のインタフェース１００は、遠隔データの圧縮／伸長モジュール２２０（以後、“コーディックモジュール２２０”と称する）と、遠隔入力待ち行列２０１及び遠隔出力待ち行列２０２を備えた遠隔メッセージキャッシュ２００とにより構成される。ここで述べられる技術に従い、コーディックモジュール２２０は、無線データ処理デバイス１３０に送信されたメッセージを圧縮し、無線データ処理デバイス１３０から受信したメッセージを伸長する。遠隔メッセージキャッシュ２００は、（例えば、前述したような様々なキャッシュ置き換えアルゴリズムを用いて）無線データ処理デバイス１３０へ／無線データ処理デバイス１３０から送信されたメッセージを一時的に格納する。一実施例において、インタフェース１００で実行されるキャッシュ置き換え方針は、無線デバイス１３０で実行される方針と同じになる（すなわち、その結果、遠隔キャッシュ２００とローカルキャッシュ２１０との間でキャッシュ内容が同期する）。
【００２３】
図３ａ−ｃは、本発明の様々な態様を述べるために用いられる典型的な一連のＥメイルメッセージを示している。図３ａは、初期のＥメイルメッセージ３００を示しており、殆どのＥメイルメッセージではヘッダ情報部分３０５とテキスト情報部分３１０とに論理的に分けられている。また、図３ａには添付ファイル３２０を示しており、これは、メッセージに文書と電子署名が添付され、送信者（すなわち、John Smith）のＥメイルクライアントによってメッセージに自動的に挿入することができるということを示している。
【００２４】
図３ｂは、初期のＥメイルメッセージに答えて、ユーザのRoger Collinsによって引き続き送信された第２のＥメイルメッセージ３０１を示している。新たなヘッダ情報３３５が示すように、本メッセージは初期の送信者であるJohn Smithへ、さらにそのカーボンコピー（ＣＣ）宛てのユーザであるTom Websterへは直接送信される。また、メッセージは、初期のメッセージが送信されたグループ内の他のすべての人にもカーボンコピーで送信される。この“全員に返信”の特徴は、殆どのＥメイルクライアントで見出され、個々の共通グループが一連のＥメイルメッセージを閲覧することができるようにするための単純なメカニズムを与えている。
【００２５】
図３ｂに示されるように、初期のＥメイルメッセージ３００の本文３１０が、新たなＥメイルメッセージで実質的に再生成される。この“経過付き返信”の特徴もまた殆どのＥメイルクライアントで共通しており、共通グループにおける個人からの一連のコメントを、あるＥメイルメッセージから次のＥメイルメッセージにわたり追跡することができる。また、オリジナルなＥメイル本文の冒頭の各行には、返信者（Roger Collin）のＥメイルシステムによって挿入された複数の記号３１６が示されている。この特徴は、（すべてではないが）かなりのＥメイルシステムで共通し、ユーザが新しい本文と古い本文とを区別することができるようになっている。
【００２６】
したがって、一連のＥメイルにおける初期のＥメイル返信後であっても、Ｅメイル経過（すなわち、前のメッセージから再生成された本文部分と添付ファイル）が、メッセージ全体の重要な部分となり、Ｅメイルの本文とヘッダ部分の両方における相当な量の冗長な情報が無線ネットワーク上で送信されるということを引き起こす。
【００２７】
図３ｃは、一連のメッセージにおける最後のＥメイルメッセージ３０２を示し、第２のＥメイル受信者は第２のＥメイル送信者とグループ内の他のすべてのＣＣ宛てメンバーに返信する。図に示すように、Ｅメイルメッセージ３０２では、冗長でない情報というのは本文３５５のほんの数行である。グループメンバー全員のメイルアドレスは、前の２つのメッセージのものと同じである（異なるフィールド間で切り替えられているが、基本アドレスは同じである）、そして添付ファイル３２０を含む前のメッセージ３００、３０１からの本文及びヘッダ情報は、若干の修正（例えば、Ｅメイルシステムによって挿入される付加記号“＞”）だけで再生成される。
【００２８】
本発明の一実施例は、この高いレベルの冗長性を利用することによってＥメイルメッセージを圧縮する。特に、新しいＥメイルメッセージに含まれる実際の内容を送信するよりも、キャッシュ２００、２０１に格納された前のＥメイルメッセージで特定される新たなメッセージ部分が、冗長部分に対するポインタによって置き換わる。例えば、ユーザ無線デバイスのキャッシュに記憶されたメッセージ３０１内の冗長内容を特定するポインタは、メッセージ３０２において、メッセージ３０１からの冗長内容のすべてを置き換えることができる。これらや他の圧縮技術の詳細については後述する。
【００２９】
図４は、前のメッセージで見出された冗長内容を使ってメッセージを圧縮する方法の一実施例を示したものである。この実施例は、メッセージインタフェース１００のある態様を詳細に示した図５に関連して述べられるだろう。４００で、インタフェース１００はメッセージ（又はメッセージ集合）を受信し、特定の無線データ処理デバイス１３０へ送信する。４０５で、当該メッセージを解析し、前のメッセージに冗長なデータが含まれているかどうかを判断する。一実施例では、これは図５に示すメッセージ識別ロジック５００を介して行われ、前のＥメイルメッセージをスキャンして冗長なデータを含むメッセージを探し出す。
【００３０】
メッセージを検索するため、メッセージ識別ロジック５００は、様々なメッセージ識別パラメータ５０５を用いることができる。例えば、一実施例において、メッセージ識別ロジック５００は、新たなメッセージが一連のメッセージ内で最新のものであるかどうかを判断することをまず試みるだろう。この判断を行うにあたって、メッセージ識別ロジック５００は様々な技術を用いることができる。例えば、一実施例において、メッセージ識別ロジック５００は、新たなメッセージが前のメッセージの返信であるかを示すスティング（sting）メッセージの主題（サブジェクト）フィールドを検索するだろう。これらのスティングが特定される場合、次に、メッセージ識別ロジック５００は、（例えば、主題フィールドで見つかる文字列に基づいて）一連のメッセージの中で最新のメッセージを探すことができる。例えば、図３ａ−ｃに戻ると、メッセージ３０２を受信すると、メッセージ識別ロジック５００は、主題フィールドの“ＲＥ：Patent Issues”を含んでいるという事実に基づき、一連の部分としてのメッセージ３０２を特定することができる。メッセージ識別ロジック５００は、ＲＥ：（又はそのメッセージが転送される場合には、ＦＷ：）を無視し、主題フィールド（即ち、“Patent Issues”）の残りに適合する他のメッセージ内の文字列をスキャンし、その主題ヘッダ内の文字列を含む最新の前メッセージを特定することができる。
【００３１】
メッセージ主題が一連のメッセージの部分であることを示すＲＥ：又はＦＷ：などの文字を含まない場合、メッセージ識別ロジック５００は、前メッセージを特定するメッセージ識別パラメータ５０５の異なる組を用いることができる。例えば、一実施例において、メッセージ識別ロジック５００は最新のメッセージを検索し、そこでは新たなメッセージ送信者は（例えば、受信者として）ヘッダでリストされるだろう。さらに、メッセージ識別ロジック５００は、所定のキーワード又はメッセージが関連データ（例えば、図３ａ−ｃに示された電子署名３１５など）を含んでいることを示す語句の組合わせを検索することができる。一実施例において、メッセージ識別ロジック５００は、メッセージに関する優先付けられた部分集合を生成することができ、それは（定義されたパラメータ５０５に基づいて）新たなメッセージで見出される内容を含むのに最も適当な候補である。
【００３２】
４１０での判断で、前のメッセージに冗長なデータがまったく存在しない場合、次に４２０で、メッセージを圧縮するために後述するような付加的な圧縮技術が用いられる。しかしながら、前のメッセージで冗長なデータが存在する場合は、４１５で、無線デバイス１３０のキャッシュ２１０上（又はメッセージトランザクションの方向性に依存するインタフェース１００のキャッシュ２００内）の冗長データを特定するポインタ／オフセットと、その冗長データが置き換わる。図５に示すように、一実施例において、メッセージ識別ロジック５００により特定されたメッセージを用いてポインタ／オフセットを生成する、状態に基づく圧縮ロジック５１０がこれを実行する。
【００３３】
図６は、状態に基づく圧縮ロジック５１０が生成した状態を基本とする圧縮フォーマットの一実施例を示したものである。図に示すように、そのフォーマットは、オフセット６０２、６１２によって分離された１以上の非冗長データ６０１、６１０、６２０、長さ６０３、６１３と、データブロックを前のメッセージと区別するメッセージ識別データ６０４、６１４とのかたまりから構成される。例えば、図６の圧縮フォーマットが図３ｃに示されるメッセージ３０２を符合化するために用いられる場合、非冗長データ６０１として新たな本文３０２を格納することができるのに対して、特定のメッセージＩＤ６０４によってメッセージ３０１のすべてを特定し、メッセージ３０１からの内容をコピーすることを始める箇所を特定するオフセット６０２、及びそのオフセットから特定されるアドレスポインタからどれだけの内容を読み出すかを示す長さ６０３が続く。
【００３４】
同様に、状態に基づく圧縮ロジック５１０が、図３ｂからのメッセージ３０１を符合化する場合、非冗長データ６０１として新たな本文部分３４０を格納することができる。さらに、Ｅメイルシステム３１６によって自動的に挿入される“＞”の各記号は、非冗長データとして送信され、それはオフセット及び長さによって特定される冗長データの行により分離される（即ち、新たなメッセージにおいて、長さ／オフセットによって特定されたメッセージ３００の各冗長な行の終わりで、新しい非冗長な“＞”が挿入される）。
【００３５】
一実施例において、ユーザが長い期間メッセージを受信しなかった場合、膨大な関連メッセージ（例えば、メッセージ３００−３０２など）をＥメイルサービス１０２の受信箱で構築することができる。したがって、一実施例では、インタフェース１００は、ユーザの無線デバイスのキャッシュ内にまだ到着しないメッセージに対するポインタを使いながら、前述したような状態に基づく圧縮技術を用いるだろう。つまり、ユーザがサービスにひとたび再接続すれば、インタフェース１００は、（サービス１０２のユーザ受信箱に格納された）グループ内のメッセージが無線データ処理デバイス１３０のキャッシュ２１０に格納される箇所を特定するだろう。
【００３６】
再度、図４及び図５に戻ると、状態に基づく圧縮ロジック５１０がメッセージの圧縮を完了すれば、ユーザの無線デバイス１３０へ圧縮メッセージ５１５を送信することができる。あるはまた、４２０で、メッセージをさらに圧縮するために、（後述する）付加的な圧縮技術を用いることができる。メッセージが十分に圧縮されれば、（４２５で）それは無線デバイスに送信され、コーデックモジュール２２５を介してそれを伸長することができる。
【００３７】
無線デバイス１３０にメッセージを送信する前に、状態に基づく圧縮技術が、インタフェース１００でメッセージを圧縮することを前述した。しかしながら、インタフェース１００にメッセージを送信する前に、無線デバイス１３０によって同様な圧縮技術を実行することができることを認識されたい。（例えば、長さ／オフセットが遠隔メッセージキャッシュ２００に記憶された冗長データを特定することができる）。加えて、Ｅメイルメッセージについて前述したが、様々な他のメッセージタイプ（例えば、ニュースグループ論文、インスタントメッセージ、ＨＴＭＬ文書など）を圧縮するために、述べてきた圧縮技術を用いることができる。
【００３８】
＜補足的／代替的な圧縮技術＞
前述した状態に基づく圧縮技術に加えたり又は代わりとして、様々な付加的な圧縮技術を用いることができる。
【００３９】
本発明の一実施例において、比較的小さなコード単語を用いて共通の文字及び文字列（即ち、無線デバイス１３０とインタフェース１００との間で頻繁に送信されるもの）を符合化するのに対して、比較的大きなコード単語を用いてめったにない文字又は文字列を符合化する。この方法でデータを符合化するために、共通の文字列を特定する統計解析が実行される。この統計解析に基づき、図７に示されたものと同様なルックアップテーブルが生成され、デバイス１３０及びインタフェース１００の両方で管理される。図に示すように、会社のＥメイル“＠good.com”として使用されたドメイン、及び会社の電話番号の最初の６桁、例えば“(408)720-”などの所定の文字列は、完全に共通することができる。これら共通のビット列を比較的小さなコード単語に置き換えることは、かなりの圧縮につなげることができる。メッセージ３００−３０２に戻ると、この圧縮技術を使って、各メッセージヘッダで何度も遭遇するドメイン“＠good.com”を、短い数ビットの符合単語によって置き換えることができる。
【００４０】
一実施例において、インタフェース１００と無線データ処理デバイス１３０間で送信される異なるデータタイプのために、異なるルックアップテーブルを生成することができるので、共通の文字列を特定が非常に正確になる。例えば、会社のアドレス帳を圧縮するために用いる他に、Ｅメイルメッセージを圧縮するために異なる組のコード単語を用いることができる。したがって、Ｅメイルメッセージを圧縮するために用いられるコード単語テーブルは、最も共通するＥメイルドメイン用の比較的小さなコード単語を含むのに適しているが、会社のアドレス帳は、会社の住所と、会社の電話番号部分用の比較的小さなコード単語を含むことができる。
【００４１】
さらに、一実施例において、特定のタイプのデータにおける各フィールドのために、唯一のコード単語テーブルを生成することができる。例えば、Ｅメイルメッセージの残りのために用いる以外に、Ｅメイルヘッダフィールドのために異なるコード単語テーブルを用いることができる。同様に、“Ｅメイルアドレス”フィールドのために用いる以外に、会社のアドレス帳の“アドレス”フィールドのために異なるテーブルを生成することができ、コード単語の組を生成が非常に正確になる。
【００４２】
各フィールドのためのコード単語テーブルを統計的に生成し且つ送信するのではなく、代替的に又は付加的に、本発明の一実施例では英語辞書のような“既知の”単語辞書を参照することにより、その結果、データとともに辞書を送信することを不要にできる。例えば、一実施例では、無線デバイス１３０及び／又はインタフェース１００上で管理されたスペルチェック辞書を内容の圧縮のために用いることができる。Ｅメイルメッセージの実際の本文を送信するよりも、スペルチェック辞書の入力によってメッセージの各単語は特定されるだろう（例えば、入力＃３９４４によって単語“会議（meeting）”を置き換えることができる）。
【００４３】
前述したタイプの圧縮に特に適したあるタイプのデータが、殆どの会社のＥメイルサーバで管理される会社アドレス帳である。本発明の一実施例において、会社アドレス帳は、クライアント１１０への直接リンクを介して始めに同期される（図１参照）。初期の同期では（例えば、無線デバイスがクライアント１１０に直接的にリンクされる場合）、共通文字の統計量及び“トークン”（例えば、名前、領域コード、Ｅメイルドメイン）が生成される。次に、その統計量及びトークンは、前述したようなデータを圧縮するために用いられる。その後、アドレス帳に対する任意の変更を無線で送信する。その後の更新では、両側（無線デバイス１３０及びインタフェース１００）での圧縮器が、集められた初期の統計量を参照するだろう。そしてこの結果、新たな統計量又は単語のない圧縮が送信される。
【００４４】
更新はアドレス帳全体にしてみれば僅かなパーセンテージであるが、所定の会社で使用されるすべての無線デバイスが多重化される際はとくに、多くのバイトを表すことになる。したがって、前述したようなアドレス帳への更新を送信する際に必要なデータ量の削減は、伝送コストを節約するのに重要となる。加えて、アドレス帳はクライアントで利用可能な記憶容量を非常に大きくする可能性があるので、クライアントのアドレス帳を圧縮形式で記憶することは、より多くの入力を記憶することを可能にさせる。
【００４５】
一実施例において、付加的スペースを節約するため、会社アドレス帳の所定のフィールドのみが無線で同期されるだろう。例えば、名前、住所、Ｅメイル、及び電話番号フィールドを無線で更新することができる。無線デバイスがクライアント１１０に直接的に再びリンクされると、アドレス帳のすべてのフィールドを更新することができる。
【００４６】
図８は、コード単語テーブルを生成する方法の一実施例を示している。８１０で、標準のハフマン圧縮アルゴリズムによる使用のために、所定のバイト列の発生を計算する。８２０で、そのフィールドタイプのために自然な境界（boundary）に基づく特定のフィールドのために、所定の“トークン”を生成する。例えば、前述したＥメイルアドレスを、Ｅメイルフィールドの“.com”及び“＠good.com”に分割することができる。電話番号を、アドレス帳フィールドの“（650）”及び“（650）620-”に分割することができる。
【００４７】
８３０で、ある発生について言えば、４バイトトークンはカウントを４増加させるのだが、バイト列がカウントされる際の発生と同様の方法でトークンの発生はカウントされる。８４０で、１回以上発生する文字及びトークンすべてのコード単語テーブル（又は１回以上発生するトップＮのトークンかもしれない）を生成する。そのテーブル部分はトークン自身を含むだろう。８５０で、コード単語テーブルの文字及びトークンを用いて、各レコードを圧縮し、８６０で、無線デバイス１３０にコード単語テーブル及び圧縮したレコードを送信する。
【００４８】
一実施例において、タイムスタンプのような唯一の番号により、コード単語テーブルを識別する。インタフェース１００及び無線デバイス１３０の両方ともに、前記テーブルを格納する。無線デバイス１３０で、スペースを節約するためにレコードは圧縮されたままであり、開封されるときのみ伸長される。次の同期で、無線デバイス１３０は、会社の辞書に対する更新を要求することができる。要求の一部として、無線デバイス１３０は、コード単語テーブルに割当てられた唯一の番号（ユニークナンバー）を含むことができる。ある理由によって、無線デバイス１３０がオリジナルなテーブルを持たない場合、インタフェース１００に知らせるために特定のタイプのＩＤを送信することができる。（例えば、ＩＤ用の“０”を使用することによって）。同様に、ある理由によって、ホストがＩＤを認識しない場合、オリジナルなテーブルを無視し、新たなテーブルを生成することができる。
【００４９】
しかしながら、殆どの場合、無線デバイス１３０及びインタフェース１００は、どのようなＩＤであるか一致するだろうし、更新に関する圧縮は、前に計算した既存のコード単語テーブルを使用するだろう。例えば、既存の従業員の前に付けた同一のＥメイル・ドメイン及び電話により、新たな従業員はうまく圧縮されるだろう。更新はアドレス帳全体のわじかなパーセンテージであるべきなので、既存のデータに非常に類似させることが最も適切であろう。
【００５０】
本発明の一実施例では、アルファベット文字（例えば、標準アスキー文字列）を独自開発の可変ビット文字フォーマットに変換し、共通文字用の比較的少ないビット及び共通でない文字用の比較的多いビットに割当てる。ある特定の実施例では、殆どの文字に６ビットを割当て、他の文字すべてに１２ビットを割当てる。この実施例は、後述するエスケープ機能を介して、前述した他の圧縮形式で継ぎ目なしに統合される（例えば、メッセージポインタ生成、コード単語ルックアップなど）。
【００５１】
殆どのメッセージは、それらにアスキー文を有している。例えば、ＥメイルフィールドのＴＯ：、又はアドレス帳入力の名前は、アスキー文字で構成されるのが一般的である。殆どのアスキー文は７ビット／文字を使用する。典型的な例外は、
2005521938.tif 000003
のようなアクセント（強勢）文字であるが、テキストフィールドの殆どの文字は、ａ−ｚ、０−９、スペース、及び僅かな記号より構成される。
【００５２】
前述したようなコード単語テーブルを用いたテキスト圧縮は、膨大な量のテキストを符合化するには適した方法である。なぜなら、所定の文字の出現頻度に関する統計量を集め、少ないビットで多くの反復文字あらわすからである。例えば、文字‘ｅ’は文字‘ｋ’よりも頻繁に出現し、それは３ビットで表すことができる。また、同一の文字列が規則的に表れる（例えば、Ｅメイル・ドメインの“＠good.com”など）ことが既知な特定のデータフィールドにデータを圧縮するのに特に適している。しかしながら、この技術における１つの問題は、その符合化されたテキストとともに統計情報を伝送し且つ格納することが要求されるということである。僅かな量のテキストにとっては（例えば、短いＥメイルメッセージ）、これは実用的でない。
【００５３】
６ビット文字フォーマットは、６４個の文字を提供する（２6＝６４）。一実施例において、次の記号が６ビットを使って符合化される。それは、文字列の終わりを表すのに便利な零、‘ａ’〜‘ｚ’、‘０’〜‘９’、スペース、最も共通した記号（例えば、ドット、カンマ、タブ、復帰改行、＠、括弧、！、コロン、セミコロン、シングル引用符、ダブル引用符など）である。６４個の値のうち４８個が前述した値であり、１６個の値はそのままである。
【００５４】
一実施例において、残りの１６個の値が次のエスケープ値のために使用される。
（１）任意の可能なアスキー値が２つの６ビット値で符合化されるようにするため、次の６ビットにより組み合わせた４個の値である。前述した文字は、上位１０内に無い記号、アクセント（強勢）記号などを許可する。例えば、６０、６１、６２、６３のバイナリー値は、基本の文字情報を含む他の６ビット値をそれぞれ識別することができる。これは、完全なＵＳアスキー文字集合を符合化するのに十二分な、付加的な２５６文字（４＊６４＝２５６）の符合化のために提供される。
（２）シフトロックである。次のシフトロックがシフトを止めるまでシフトする。文字にすれば、これはキャップスロックのようなものである。数字及び記号にすれば、これは何の効果もないかもしれない。あるいはまた、シフトロックがオンの時は、第２の組の値を定義することができる（例えば、記号に関する第２の“上位１０”のリスト）。
【００５５】
一実施例において、残りの１１個の６ビット文字は、“インストール可能なエスケープ値”であり、１以上の標準又は従来の圧縮器を許可する。例えば、ＥメイルすべてにあるＴＯ：、ＦＲＯＭ：ＣＣ：、及びＢＣＣ：フィールドは、セミコロンによって分離されるＥメイルアドレスのリストを含む。次の特別なエスケープ値を定義することができる。
【００５６】
（１）顧客の／ユーザのＥメイルアドレスを６ビットに変換することができる。
（２）顧客の／ユーザのドメインを６ビットに変換することができる（例えば、“＠Good.Com”は６ビットになる）。
（３）“共通”ドメインネーム及び接尾部（サフィックス）を６ビット値及び６ビット引数に変換することができる（例えば、“共通”リストは、殆ど共通した６４個の名前であり、且つ“＠aol.com”、“＠webtv.com”、“.com”、“.net”、“.org”、“.gov”、“.us”、“.uk”など）。
（４）Ｅメイルの“最近使用された”名前を６ビット値及び６ビット引数に変換することができる。メッセージがＥメイルＩＤであるメッセージの他の所は、これが左右される。引数は、フィールド（ＴＯ：、ＦＲＯＭ：、ＣＣ：、ＢＣＣ：）を識別する２ビット、及びそのフィールドの最初の１６個のＥメイルアドレスを識別する４ビットを含むだろう。
【００５７】
前述した他のタイプの圧縮によって（例えば、コード単語、置き換え文字、ＬＺ圧縮、辞書探索、及び／又は前メッセージの参照）、新たな文字フォーマットを連続的に用いることができる。一実施例において、図９に示すように、テキスト圧縮モジュール９００は、前述した６ビット文字フォーマットに従ってテキストを圧縮し、様々な他の圧縮モジュール間で圧縮機能を調整する。図示した実施例では、前述したようなキャッシュした前メッセージ、及び（例えば、前述したようなスペルチェック辞書を参照しながら統計的に解析されたトークンを符合化することによって）コード単語を使って共通文字列を圧縮する、コード単語圧縮モジュール９２０のための状態に基づく圧縮モジュール９１０を含む。さらに、代替圧縮モジュール９３０により示されるように、巨大レベルの圧縮（例えば、標準ＬＺ圧縮）を達成するために、様々な他のタイプの圧縮をシステム上で用いることができる。
【００５８】
図１０は、本発明のこの実施例による符合化された（図３ｃからの）Ｅメイルメッセージ３０２の典型的な一部を示したものである。Ｅメイルメッセージ３０２の右上隅からはじまり、テキスト圧縮モジュール９００は、文字の第１の組を符合化する（即ち、アドレスフィールド“ＴＯ：”により開始する）。各文字で、テキスト圧縮モジュール９００は、他の圧縮モジュール９１０、９２０、９３０を調整し、これらのモジュールが巨大圧縮を実現できるかどうかを判断する。実現できない場合、テキスト圧縮モジュール９００は、６ビット文字フォーマットに従ってテキストを符合化する。しかしながら、他の圧縮モジュール９１０、９２０、９３０の１つによって高レベルの圧縮を実現できる場合、テキスト圧縮モジュール９００は、そのモジュールに圧縮タスクを引き渡し、そのモジュールが圧縮タスクを達成する箇所を示すビット“エスケープ”シーケンスを挿入する。
【００５９】
例えば、図１０に示すように、最初の３文字（“ＴＯ：”）に続くエスケープシーケンス“110010”は、コード単語生成モジュール９２０が次のデータ部分を圧縮することを示している。実行時に、Ｅメイルメッセージのこのポイントにくると、コード単語生成モジュール９２０は、コード単語を用いた（例えば、トークン化されたＥメイルアドレスを用いて）高レベルの圧縮を行うことができることをテキスト圧縮モジュール９００に知らせる。したがって、エスケープシーケンス“110010”に続くシーケンス“1011001000”は、トークン化されたＥメイルアドレス“Collins,Roger”＜rcollins＠good.com＞を表すコード単語である。
【００６０】
あるいはまた、システムが用いる特定のコード単語の組に依存したＥメイルアドレスを符合化するために、２以上のコード単語を用いることができる（例えば、個人ネーム用のものと、ドメイン“＠good.com”用の別のもの）。図１０に示すように、次に、テキスト圧縮モジュール９００は、トークン化されたＥメイルアドレス（即ち、復改文字の後の“ＦＲＯＭ：”）の次の符合化プロセスを得る。
【００６１】
Ｅメイルヘッダー情報が符合化された後、新たなテキスト３５５のかたまりが６ビット文字フォーマットを用いて符合化される。もちろん、コード単語生成モジュール９２０及び／又はシステムの前のＥメイルによって用いられるコード単語に依存し、コード単語及び／又は前メッセージへのポインタを使って、新たなテキスト３５５のかたまりの一部を符合化することができる。テキストかたまり３５５に次いで、状態に基づく圧縮モジュール９１０は、メッセージを解析後に、前メッセージに見出された内容を特定することによって高レベルの圧縮を行うことができることをテキスト圧縮モジュール９００に知らせる。圧縮が、状態に基づく圧縮モジュール９１０によってそのポイントの前方から処理されることを示すエスケープシーケンス“110011”が生成される。次に、状態に基づく圧縮モジュール９１０は、（メッセージ３０１を示す）メッセージＩＤコードを使って前のＥメイルメッセージを特定し、且つ（例えば、前述したような１以上の状態に基づく圧縮技術を用いて）そのＥメイルメッセージ内の特定の内容を示すオフセットと長さを生成する。
【００６２】
図１０に示す特別の例は図示するためのものに過ぎないことに留意すべきである。システム及び／又はシステム上で記憶された前メッセージによって用いられた符合単語に依存し、Ｅメイルメッセージ３０２の実際の符合化は、図示したものと異なって表れるかもしれない。例えば、前述したように、６ビット文字フォーマットと同様な、コード単語及び／又は前メッセージに対するポインタを使って、テキスト３５５のかたまりを符合化する。
【００６３】
また、（例えば、代替圧縮モジュール９３０によってあらわされた）様々な補足的／代替的な圧縮技術を用いることができる。一実施例において、あるタイプのデータは、無線データ処理デバイス１３０とインタフェース１００との間、無線で送信されない。例えば、一実施例において、デバイスがある期間（例えば、１週間）メッセージを受信できない場合は、メッセージヘッダーだけがまずデバイス１３０に送信され、これにより、過度に長いダウンロード時間を避けることができる（即ち、そこでは、利用不可能な期間に受信したメッセージすべてがデバイスへ転送される）。代替的に又は付加的に、一実施例において、デバイスが延長期間に接触しない場合、（例えば、２４時間を越えて受信された）関連する新たなメッセージだけが、オンラインに戻ったときにデバイスに送信される。同様に、一実施例において、ユーザがカーボンコピー（ＣＣ）受信者であるとき及び／又はＥメイルがユーザ受信箱以外からのものであるとき、Ｅメイルヘッダー情報だけが、（例えば、主題及び送信者を示しながら）無線デバイス１３０に送信される。
【００６４】
一実施例では、所定のフィールドのみがデバイス１３０で更新される。例えば、会社又は個人のアドレス帳に関連して、名前、Ｅメイルアドレス、及び電話番号フィールドをデバイス１３０で同期させることができる。デバイスがクライアントに直接的に接続されるとき、すべてのフィールドを更新することができる。
【００６５】
一実施例において、デバイス１３０にＥメイルメッセージを送信する前に、より圧縮させるために、Ｅメイルメッセージから所定の細目（detail）が除去される。例えば、ある特定のヘッダ情報のみを送信することができる（宛先、送信者、カーボンコピー（ＣＣ）先、日付、主題、本文など）。同様に、あるサイズ以上の（例えば、２０文字の後の）主題行を短縮することができる。さらに、添付ファイル及び様々なフォーマット形式の主題（例えば、埋め込まれた画像）を送信することができない。一実施例において、ユーザが出て行くメッセージのカーボンコピー受信者として彼／彼女自身をリストする場合、このメッセージは無線デバイス１３０へ送り返されないだろう。
【００６６】
一実施例では、無線デバイスに添付ファイルを送信することができないが、ユーザはその添付ファイルを無線デバイスから他人へ転送することができる（もちろん、添付ファイルをＥメイルサーバに格納することもできるだろう）。さらに、一実施例では、無線デバイス１３０からのユーザコマンドを受けて、添付ファイルをファクシミリ機器に送ることができる。したがって、ユーザがオフィスから離れ、特定の添付ファイルを見直す必要がある場合、彼はすぐ近くのファクシミリ機器の番号をタイプし、その情報をインタフェース１００に送信することが可能である。次に、インタフェース１００は、添付されたファイルタイプ（例えば、ワード、パワーポイントなど）にとってのビューワーを用いてその添付ファイルを開け、ユーザが入力したファクシミリ番号を使ってモデムを介し文書を送信するだろう。この結果、ユーザはデバイスでその添付ファイルを受信することなく閲覧することができる。
【００６７】
＜メッセージトランザクションのバッチ処理＞
図１１に示すように、ある状況下で、デバイス１３０とサービス１０２との間の完全な同期を維持することは、かなりの量の無線帯域幅を消費するかもしれない。例えば、ユーザが延長された期間又は時間（例えば、デバイスの電源が切られている）帯域外にいるならば、デバイスが帯域内に戻った際に、インタフェース１００から無線デバイス１３０へ複数のメッセージを連続して送信することができる。もちろん、幾つかのケースでは、ユーザは帯域外にいる必要はまったくない。むしろ、ユーザは、非常に多くの連続したＥメイルメッセージを受信／送信することができる。
【００６８】
図示するように、ユーザがデバイス１３０でメッセージの閲覧を開始すると、メッセージトランザクションの更新は、インタフェース１００に絶えず送られる。例えば、ユーザがメッセージ１を読み出すとき、メッセージが読み出された知らせがインタフェース１００に送信される。この後、（例えば、通信を受信したことを知らせながら、）インタフェース１００からの肯定応答（ＡＣＫ）が続く。同様に、ユーザがメッセージ２を読み出し且つ削除する場合、メッセージが読み出され且つ削除されたことの個別の知らせが、インタフェース１００に送信され、各トランザクションの肯定応答がこの後それぞれに続く。
【００６９】
デバイス１３０とインタフェース１００との間の個々のデータトランザクションが、かなりの量のオーバヘッド（例えば、デバイスアドレス１３０などのヘッダ情報）を含むので、そして各メッセージがインタフェース１００からの肯定応答を要求するので、この方法でメッセージを同期させることは、非常に多くの帯域幅を消費するかもしれない。別の方法では、制御データ（例えば、ヘッダデータ）に対する実際のデータ（例えば、データベース更新）の割合はかなり低いだろう。さらに、このタイプの連続したデータ伝送は、かなり多くの電力（パワー）を消費する傾向があるだろう（これは、デバイスの無線通信が、低電源モードに入るほど十分に長い休止状態でない理由などによる）。
【００７０】
したがって、本発明の一実施例では、（後述する）ある状況下で、デバイス１３０とインタフェース１００間のデータトランザクションを組み合わせたり、帯域幅を節約するためのバッチ処理が行われたりする。例えば、図１２に示すように、この実施例では、デバイスがサービス１０２と同期する前に、複数のメッセージトランザクションをデータ処理デバイス上で実行することができる。引き続き、すべての同期更新を含む単一の伝送１２０１（例えば、メッセージを見ること及び削除すること、メッセージ応答など）がインタフェース１００に送信され、更新を受信したという単一の肯定応答１２０２が続く。
【００７１】
同様に、ある状況下では、デバイス１３０に送信する前に、サービス１０２でのデータベース変更をバッチ処理で行うことができる。例えば、オフィスにいるユーザが、（例えば、クライアント１１０からの）一連のＥメイルメッセージを読んで返事を出し、各メッセージトランザクションを無線デバイス１３０送信する場合、前述した理由により、互いの独立性は有効でないかもしれない。このため、一実施例において、これらのトランザクション（又はこれの部分集合）が組み合わされ、同時に無線デバイス１３０へ送信される。
【００７２】
図１２に示したように、バッチ処理が開始される特別の状況、且つ（開始されれば）メッセージが組み合わされる特別の方法は、無線デバイス１３０及び／又はインタフェース１００それぞれに構築された処理パラメータ１２１０、１２２０に基づいて行われる。例えば、一実施例において、ユーザが延長期間（例えば、２日）間、メッセージをチェックしなかった場合、バッチ処理が起動されるだろう。この場合、ユーザがメッセージのチェックを開始すると、比較的短い期間内に、彼／彼女が非常に多くのメッセージトランザクションを実行することが期待される。しかしながら、本発明の基本的な原理を満たしながら、様々なバッチ処理起動を用いることができることに留意されたい（例えば、所定時間内の２以上の連続したメッセージトランザクション、エンドユーザによって設定された手作業の起動作業など）。
【００７３】
バッチ処理が起動されると、各間隔の終わりで、周期的な間隔（例えば、１０分ごと）で出現するメッセージトランザクションを組み合わせて送信することができる。代替的に又は追加的に、組み合わされたメッセージトランザクションが、（例えば、トランザクションの完全な番号、及び／又は組み合わされたトランザクション内に含まれるデータ量に基づく）ある所定の閾値に達すると、その組み合わされたメッセージを一緒に送信することができる。本発明の基本的な原理を満たしながら、様々な他のメッセージ組み合わせパラメータを用いることができる。
【００７４】
メッセージトランザクションのバッチ処理を実行する方法の一実施例を図１３に示す。１３０１で、現在のメッセージトランザクション条件が評価される（例えば、メッセージトランザクションが実行される頻度で、最後のメッセージトランザクションが開始されるときなど）。１３０５で、現在の条件がバッチ処理に要求された閾値条件に適合するかどうかを判断する。例えば、前述したように、ユーザの無線処理デバイス１３０が所定の期間、帯域外にいる場合、及び／又はユーザが周期的に自分のＥメイルをチェックしない場合、バッチ処理モードを呼び出すことができる。
【００７５】
前記条件が適合しない場合、１３１０で、システムは標準メッセージトランザクションモードのままである。しかしながら、条件が適合している場合、１３１５で、そのシステム（即ち、無線デバイス１３０及び／又はインタフェース１００）は、確立されたバッチ処理パラメータに従ってメッセージを処理する。例えば、この段階で、無線デバイス１３０及び／又はインタフェース１００は、所定の周期で生じる（又は前述したような、特定の数のトランザクション又はデータ量になる）メッセージトランザクションを組み合わせることができる。
【００７６】
１３２５で、再度、標準メッセージの処理条件が適合しているかどうかを判断する。例えば、バッチ処理モードに入った後、ユーザのデータ処理デバイスが所定の期間帯域にあって、且つユーザがメッセージを周期的に受信し迅速に返信する場合、これは、システムが標準メッセージ伝送モードに戻るようにすることができる。システム構成によって、様々な追加的／代替的条件は、システムがその標準メッセージ処理モードに入るようにすることができる。
【００７７】
＜マルチレベルのバッチ処理＞
本発明の一実施例において、２レベルのバッチ処理が用いられる。１つは顧客サイト１２０でのものであり、もう１つは外部のデータネットワーク１７０に配置されたデータセンターのものである。本実施例は図１４に関連して述べられ、図１４は外部ゲートウェイ１４１３を経由した顧客サイトに、及び無線ゲートウェイ１４１１を経由した無線ネットワーク１７１に通信可能に接続されたデータセンター１４１０を示している。
【００７８】
顧客サイトでのバッチ処理ロジック１４００は、第１のレベルのバッチ処理を提供する。特に、一実施例において、ユーザがメッセージトランザクショングループを同時に実行する場合、バッチ処理ロジック１４００は、データセンター１４１０に送信する前に、メッセージトランザクションを論理的に組み合わせる。例えば、（個々の削除／移動を連続して送信し、且つデータセンター１４１０からの個々の肯定応答の数に等しいだけ待つ場合に対して、）ユーザがＥメイルメッセージのかたまりを削除したり、あるフォルダから別のフォルダへメッセージのかたまりを移動する場合には、それぞれの削除／移動のかたまりがグループとして送信される。さらに、メッセージトランザクションのかたまりは、（図２に関して前述したように、）遠隔メッセージキャッシュ２００内、又は顧客サイトでの代替キャッシュ内に完全に一時的に格納される。
【００７９】
データセンター１４１０で、バッチ処理メッセージトランザクションは、まず、“メッセージ切り替え”１４１２としてここで称される第２のキャッシュに完全に格納される。メッセージトランザクションのかたまりを受信し且つ格納した後、メッセージ切り替えは、ブロックの肯定応答をバッチ処理ロジック１４００に送信し、その後、バッチ処理ロジック１４００は、遠隔メッセージキャッシュ２００からそのメッセージトランザクションかたまりを削除することができる。あるいはまた、バッチ処理ロジック１４００は、ある所定の時間の、又はある所定のイベントが発生した後のメッセージトランザクションのかたまりを格納し続けることができる（例えば、無線デバイス１３０によってメッセージトランザクションがうまく受信されたという知らせをバッチ処理ロジック１４００が受け取るまで）。
【００８０】
無線デバイスが無線ネットワークに有効に接続される場合、メッセージトランザクションが、グループとして、メッセージ切り替え１４１２から無線デバイスへ（無線ゲートウェイ１４１１を経由して）転送される。例えば、１０個のメッセージがユーザの“受信箱”フォルダから“保存メイル”フォルダへ移動されるという知らせを一緒に送信することができる。次に、無線デバイス１３０は、１０個すべてのメッセージトランザクションを受信したという単一の肯定応答付きの返答をすることができる。あるいはまた、１つのメッセージトランザクションがうまく受信されなかった場合、（“メッセージトランザクションの正しい順序の配信”という表題の章で後述するように、）無線デバイス１３０は、グループ全体に対して、独立したメッセージトランザクションを要求することができる。
【００８１】
一実施例において、メッセージ切り替え１４１２は、顧客サイトで、バッチ処理ロジック１４００により実行される第１のレベルのバッチ処理に加え（又は代わりに）、第２のレベルのバッチ処理機能を実行する。特に、メッセージ切り替え１４１２は、大量のメッセージトランザクション（例えば、“１０個のメッセージを削除”）に対する時間に生成される一連のメッセージトランザクションをバッチ処理する。例えば、ユーザは顧客サイトで１つの新しいＥメイルメッセージを読み出した後、別のものを読み出すのが典型的であり、そして新たな予定事項リストの入力、及び一日にわたるカレンダー入力を絶え間なく追加することができる。一実施例において、これらの個々のメッセージトランザクションは、それらがサービス１０２で発生するときにインタフェース１００からメッセージ切り替え１４１２へ送信される。例えば、ユーザが単一の新たなＥメイルメッセージを読み出すとき、メッセージが読み出されたという知らせがメッセージ切り替え１４１２に送信される。同様に、ユーザが新しいカレンダー入力を生成するとき、その新たな入力がメッセージ切り替え１４１２へ自動的に送信される。
【００８２】
一実施例において、メッセージ切り替え１４１２は、無線デバイス１３０に送信する前に様々な個々のメッセージトランザクションを一緒にグループ化する。無線デバイス１３０が無線ネットワークに有効に接続される場合、メッセージ切り替え１４１２は、所定数のメッセージトランザクションを一緒にグループ化することができ、及び／又はそれらをグループとして無線デバイス１３０へ送信する前の時間に発生するすべてのメッセージトランザクションを一緒にグループ化することができる。
【００８３】
無線デバイス１３０が無線ネットワーク上で有効に通信しない間、メッセージ切り替え１４１２は、すべてのメッセージトランザクションを組み合わせ、且つ無線デバイスがオンラインになるとそれらをグループとして送信することができる。一実施例において、メッセージ切り替え１４１２及び／又はバッチ処理ロジック１４００は、図１２に関して述べたバッチ処理パラメータ１２１０、１２２０に基づくメッセージトランザクションをバッチ処理することができる。
【００８４】
＜正しい順序の配信＞
この中で述べたように、無線デバイス１３０をサービス１０２と十分に同期させるためには、メッセージトランザクションが無線デバイスから及びデバイスへ確かに通信されるだけでなく、メッセージトランザクションが正しい順序（例えば、メッセージトランザクションがサービスで発生したのと同じ連続した順序）で通信されることも重要である。例えば、ユーザがサービス１０２で新たなフィルダを作り、次にそのフォルダ内に数個のメッセージを移動させる場合、移動トランザクションの前に無線デバイスによって、フォルダを作るトランザクションを受信しなければならない。
【００８５】
Mobitexのような無線ネットワークはデータを信頼して配信することを保証するが、配信されるデータが正しい順序で到着することを必ずしも保証していない。さらに、転送制御プロトコル（“ＴＣＰ”）のようなネットワークプロトコルは、正しい順序のデータ配信を保証していないが、これらのプロトコルは、送信ノードと受信ノードの両方が常に有効であることを保証する。これにより、１つのノードが延長期間有効でないシステムに対して必ずしも適合されない。
【００８６】
図１５に示す本発明の一実施例は、正しい順序の制御ロジック１５００、１５１０、１５２０を顧客サイトで用い、データセンター及び／又は無線デバイスそれぞれは、メッセージトランザクションに関する正しい順序の配信を保証する。動作では、顧客サイトでの各メッセージトランザクションが、メッセージトランザクションが生成された順序を示す一連のコードに割当てられる。一実施例において、一連のメッセージトランザクションが無線デバイス１３０に送信される（又は無線デバイス１３０からインタフェース１００に送信される）とき、無線デバイス１３０（又はインタフェース１００）は、前の連続したメッセージトランザクションすべてを受信するまで特定のメッセージトランザクションを実行しないだろう。その結果、無線デバイス１３０が１〜３、及び５〜１０までの連続してコード化された一連のメッセージトランザクションを受信する場合、メッセージトランザクション１〜メッセージトランザクション３を実行することができ、メッセージトランザクション４を受信するまでメッセージトランザクション５〜１０を実行しないだろう。
【００８７】
一実施例において、（例えば、メッセージトランザクションは送信中に失われるという理由で）無線デバイスが所定期間後にメッセージトランザクション４を受信しなかった場合、無線デバイス１３０はデータセンター１４１０及び／又はインタフェース１００へ要求を送り、メッセージトランザクション４を転送するだろう。次に、インタフェース１００及び／又はデータセンター１４１０でそれぞれ実行される正しい順序の制御ロジック１５００又は１５１０は、遠隔メッセージキャッシュ２００又はメッセージ切り替え１４１２それぞれからのメッセージトランザクション４を転送するだろう。
【００８８】
無線デバイス１３０は、メッセージトランザクション４をうまく受信すると、インタフェース１００及び／又は無線切り替え１４１２に通知し、これによってメッセージトランザクションが、遠隔メッセージキャッシュ２００及び／又はメッセージ切り替え１４１２から除去されるようになる（即ち、ここで述べられる他のキャッシュ除去条件が適合されたということを仮定する）。一実施例において、無線デバイスは、各メッセージトランザクションに関する個々の通知に対して、ブロック通知を送ることができる。例えば、メッセージトランザクション４を受信したという通知を単に送るよりも、無線デバイス１３０はメッセージ１−１０（又はかわりに使えるメッセージトランザクションの数）をうまく受信したという単一の通知を送ることができ、これにより、単一の通知によってすべてのメッセージが遠隔メッセージキャッシュ２００及び／又はメッセージ切り替え１４１２からクリアーされるようになる。前述した連続のトランザクション番号は説明のためだけに用いられていることに留意すべきである。本発明の基本的な原理を満たしながら、メッセージトランザクション順序を示すために、様々な代替的な連続コードを用いることができる。
【００８９】
＜識別コードの割当て＞
各Ｅメイルメッセージ、カレンダー入力、予定事項リストの入力などは、サービス１０２による唯一の識別コードが割当てられる。例えば、サービスがマイクロソフトエクスチェンジ（Microsoft Exchange）である場合、新たなデータオブジェクトそれぞれに対して１２８バイトの識別コードを生成する。したがって、無線デバイス１３０をサービス１０２に完全に同期させるとき、どんな冗長の識別コードも２つの分断したデータオブジェクトのために割当てられないということを保証するためにあるメカニズムを準備しなければならない。例えば、サービス１０２と無線デバイス１３０の両方がデータオブジェクトを個々に生成することができる場合、両方ともに矛盾を生じるような同一の識別コードを有するデータオブジェクトを同時に生成するかもしれない。
【００９０】
この問題を解決するための１つのメカニズムは、無線デバイス１３０を必要とし、新たなデータオブジェクトを生成するたびごとに、サービス１０２から新たな識別コードを要求することである。このシナリオによる可能性のある問題の１つは、無線デバイス１３０が識別コードを獲得するのにかかる時間が不当に長く、無線ネットワークの速度に依存するということである。例えば、新たなＥメイルメッセージの入力やカレンダー入力を開始するのを待つ理不尽な時間は、数秒とみなすことができる。
【００９１】
あるいはまた、一実施例において、可能性のあるすべてのデータオブジェクトコードの範囲は、無線デバイス１３０とサービス１０３との間で分けられる。言い換えると、可能性のあるすべてのコードの所定のパーセンテージ（例えば、１／２）が、無線デバイス１３０に割当てられ、残りの可能性のあるコードがサービス１０３に割当てられる。動作において、無線デバイスで新たなデータオブジェクトが生成されるとき（例えば、新たな“予定事項”リストの入力）、無線デバイス１３０がデータオブジェクトコードを事前に割当てられた範囲からのみ選択し、これによりサービス１０２での矛盾を避けるだろう。ある特別の実施例において、負のコードすべてが無線デバイス１３０に割当てられ、正のコードすべてがサービス１０２に割当てられる。３２ビット（４バイト）コードが用いられる場合、これは２,１４７,４８３,６４８（２31）個の負コードと、２,１４７,４８３,６４８（２31）個の正コードとを生じさせるだろう。しかしながら、コードを分割するこの特別の方法は、本発明の基本的原理とは関係がない。
【００９２】
無線デバイスがサービスと完全に同期する際に存在する別のあり得る問題としては、多くのサービスによって用いられる標準データのオブジェクト識別コードが不必要に大きいということである。前述したように、マイクロソフトエクスチェンジは、１２８バイト（１０２４ビット）コードを生成し、それぞれの唯一のデータオブジェクトを識別する。
【００９３】
したがって、図１６に示された本発明の位置実施例において、インタフェース１００は、標準データのオブジェクト識別コード１６２０（例えば、マイクロソフトエクスチェンジによって用いられる１２８バイトコードなど）を、ここで述べる同期システムの使用のために特別に生成されるデータオブジェクト識別コード（ＩＤ）１６１０（以後、「同期システム識別コード１６１０」と称する）へマッピングするオブジェクト識別コードマッピングロジック１６００を含む。図示したように、オブジェクト識別コードマッピングロジック１６００は、各標準識別コード１６２０を対応する同期システム識別コード１６１０に関連付けるデータオブジェクト識別テーブル１６０５を保持する。前述したように、一実施例において、同期システム識別コード１６１０は３２ビット長であり、これにより、無線ネットワーク上に伝送される情報量を格段に削減させる。さらに、図１６に示すように、負の識別コード１６１０が、無線デバイス１３０によって生成されるデータオブジェクトを識別し、そして正の識別コード１６１０が、サービス１０２で生成された（例えば、ローカルデスクトップＰＣからの）データオブジェクトを識別する。
【００９４】
＜データオブジェクトの不一致解決＞
無線デバイス１３０及びサービス１０２の両方で、データオブジェクトのコピーを保持することができるので、本発明の一実施例では、無線デバイス１３０及びサービス１０２両方での同じデータオブジェクトに対する同時修正が、論理的な方法で解決されることを保証するための技術を用いる。例えば、一実施例において、バージョン番号が各データオブジェクトに関連付けられる。データオブジェクトが修正される度ごとに、そのバージョンコードが変更され新たなバージョンを表すことになる。
【００９５】
一実施例では、図１７に示すように、インタフェース１００及び／又は無線データ処理デバイス１３０は、不一致検出ロジック１７００,１７０１をそれぞれに含み、バージョン不一致が発生した時期、そしてそのバージョン不一致を解決するために１以上の所定の不一致解決技術を実行する不一致解決ロジック１７１０を検出する。図１７の例示の方法によれば、バージョン１のデータオブジェクトＸのコピーは、最初、無線デバイス１３０及びサービス１０２の両方に格納される。例えば、バージョン１は、カレンダー入力又は予定事項リスト入力の初期バージョンであり得る。バージョン１のデータオブジェクトＸの２つのコピーは、サービス１０２及び無線デバイス１３０で同時に修正され、バージョン不一致を生み出すバージョン２1とバージョン２2をそれぞれ生成する。これが起こり得る１つの方法は、ユーザが無線デバイス１３０でデータオブジェクトＸを修正するのと同時に、ユーザの管理的なアシスタントがサービス１０２でデータオブジェクトＸを修正するということである。無線デバイス１３０は、バージョン２2でサービス１０２を更新することをその後に試み、同様に、サービス１０２は、バージョン２1で無線デバイス１３０を更新することを試みる。
【００９６】
一実施例において、不一致検出ロジック１７００,１７０１は、インタフェース１００及び／又は無線デバイス１３０でそれぞれ実行し、バージョン不一致を検出する。応答時では、１以上の不一致解決技術を適用することによって当該不一致の解決を試みる不一致解明ロジック１７１０,１７１１を誘引する。不一致を解決するために、様々な技術を用いることができる。例えば、一実施例において、サービス１０２で、データオブジェクトのバージョン（バージョン２1）が自動的に保持され、そしてユーザは、無線デバイス１３０からのデータオブジェクトに対する自分の修正が入力されないことが通知される。新たなバージョン（バージョン２2）の可視的表示、及び／又は修正が入力されない理由に関する説明によってこの通知を達成することができる。あるいはまた、一実施例において、ユーザはデータ処理デバイスから促されて、２つの可能性のあるバージョン間の選択を行う。選択を行うことで、その選択されたバージョンは、無線デバイス１３０及びサービス１０２の両方に格納されるだろう。別の個人が試みて選択されていないバージョンを入力する場合（例えば、ユーザの管理的なアシスタント）、その後に当該個人を通知することができる。一実施例では、選択されるバージョンは、それを入力した人物に基づく。例えば、ユーザ（即ち、ユーザの管理的アシスタントでない）によって生成されたバージョンを常に受け入れるよう本発明の一実施例を構成することができる。その結果、ユーザが無線デバイス１３０又はサービス１０２で直接的の何れかより（即ち、サービス１０２に接続されたデスクトップから）データオブジェクトＸを修正する場合、ユーザの修正は他の任意の修正を超えて受け入れられるだろう。
【００９７】
前述した特有の不一致解決技術は、説明の目的のみのためであることに留意すべきである。本発明の基本的な原理を満たしながら、不一致解決ロジック１７１０,１７１１によって、様々な付加的な不一致解決技術を用いることができる。
【００９８】
＜完全な無線同期及びゼロデスクトップのインストール＞
前述した高等の圧縮及びメッセージ処理技術は、無線デバイス１３０がサービス１０２と完全に同期することができるようにする。例えば、本発明の一実施例において、メッセージサービスの主な構成要素すべてが無線デバイス１３０上で完全に同期される。例えば、サービスがマイクロソフトエクスチェンジである場合、これらの構成要素は、Ｅメイル並びに電子的なカレンダー、コンタクト、タスク、及びノートを含むだろう。したがって、すべてのユーザトランザクションが、クレードル（架台）を必要とすることなく、無線デバイス上での交信を保持する。
【００９９】
一実施例において、メッセージが同期されるばかりでなく、サービス１０２の完全な状態もまた同期することができる。例えば、この状態情報は、新たなフォルダ、古いフォルダの削除、フォルダへのメッセージファイリング、デバイスからのメッセージ読み出し、未読メッセージの印つけ、Ｅメイル削除、新たなメッセージの到着、フォルダへのメッセージコピー、メッセージ及び／又はサービスで保持されたメイルボックスに影響を及ぼす他の任意のトランザクションに関するファイリングを含むことができる。
【０１００】
さらに、一実施例において、無線デバイス１３０は、無線で供給される。したがって、ユーザのアカウントがサービスで使用可能になると、ユーザの初期データすべてが無線で送信される。例えば、このデータは初期のコンタクト（例えば、アドレス帳）、ノート、タスク、及びカレンダーデータを含むことができる。一実施例において、デバイスとサービスとの間の通信を暗号化するため（例えば、デバイスインストールソフトウェアによって）、無線デバイス１３０上で唯一の暗号鍵を初めにインストールすることができる。
【０１０１】
一実施例において、たとえ無線デバイス１３０のデータが完全に同期されなくとも、デバイス上のスペースを節約するために成熟したアルゴリズムを用いることができる。例えば、ある時点の所定の位置で、サービスは４０,０００個のデータオブジェクト（例えば、Ｅメイルメッセージ、カレンダー入力など）を格納することができるのに対して、（メモリ量の限界がある）無線デバイスは、２０,０００個のデータオブジェクトしか格納することができないかもしれない。したがって、一実施例において、無線デバイス１３０は、最長期間、修正又はその他の場合は操作（例えば、あるフォルダから別のフォルダへの移動）されなかったデータオブジェクトを格納するだろう。一実施例において、ユーザはどんなタイプのメッセージが自動的に削除されるべきかを特定することができる（例えば、「送信メイル」フォルダ内のメッセージのみ、１月を超える任意のメッセージなど）。しかしながら、メッセージがデバイスから移動されると、サービスからそのメッセージを常に取り戻すことができる。
【０１０２】
例えば、ユーザはあるデータオブジェクトを要求し、１以上の特定の変量（例えば、作成者、クライアント、送信者、受信者、データ範囲など）に基づいたサービス１０２より再送信することができる。同様に、一実施例において、ユーザが無線デバイス１３０から、ユーザのデスクトップから削除されているデータオブジェクトを操作する場合（例えば、あるフォルダから別のフォルダへのＥメイルメッセージ移動）、データオブジェクトは、無線デバイスに再送信され、宛先フォルダ内に格納されるだろう。
【０１０３】
本発明の一実施例は、システムの任意の部分（例えば、データネットワーク１７０及び／又は無線サービスプロバイダーネットワーク１７１）がたとえ“ダウン（故障）”しても、同期イベントを保持する。例えば、前述したように、データセンター１４１０及び／又はインタフェース１００それぞれで、バッチ処理キャッシュ２１０又は２００の１つにおいて、システムのダウン時間のあいだに生じる任意の同期イベントを保持することができる。したがって、インタフェース１００はある期間ダウンし、データネットワーク１７０は使用不可能になり、無線デバイス１３０は停止、有効範囲外または中断するかもしれないが、それでも同期更新は維持されるだろう。システムのすべての部分が再び正常に稼動すると、待ち行列に入っていた同期更新が処理される。
【０１０４】
インタフェース１００の一実施例において、効果的な方法で、「移動」イベントが削除され且つ処理される。図１８のサービス１０２及びインタフェース１００間で示されるように、マイクロエクスチェンジなどのメッセージシステム上のあるフォルダから別のフォルダへ（例えば、「送信メイル」フォルダから「保存メイル」フォルダへ、「受信箱」フォルダから「読み出しメイル」フォルダへなど）、メッセージ（又は他のデータオブジェクト）を移動するとき、メッセージの新たなコピーが宛先フォルダの位置で作られ、次に、送信元フォルダからオリジナルなメッセージを削除する。あるいはまた、最初に、送信元フォルダからメッセージを削除し、次に宛先フォルダに再生成することができる。削除コマンドの送信後又は生成されると、無線デバイス１３０に対する基本メッセージのコピーは、移動トランザクションを実行するのに非高率な方法である。したがって、図１８に示すように、インタフェース１００の一実施例は、データオブジェクト（即ち、メッセージ）識別コード、ソースフォルダ、及び／又は宛先フォルダを使って、「削除」コマンド及び「新規」コマンドを組み合わせて１つの「移動」コマンドにする。これにより、無線ネットワーク上で伝送される情報量が大幅に削減されるようになる。
【０１０５】
この方法で無線デバイス１３０に移動コマンドを提供するために、システム（例えば、インタフェース１００）は、移動されるべきメッセージをまず特定しなければならない。インタフェースの一実施例は、図１９ａ及び／又は図１９ｂの何れか又は組み合わせて、前述した方法を用いてメッセージを特定する。図１９ａをまず参照すると、１９００で、インタフェース１００は、メッセージＸがフォルダＡから削除されることを検出する。１９１０で、インタフェース１００は、その削除が移動コマンドの部分を形成するかどうかを判断することを試みる。ユーザのアカウント内の他のフォルダを検索し、同一のメッセージを探し出す。特定のフォルダ、例えばフォルダＢに同一のメッセージがある場合、１９３０で、無線デバイス１３０へ移動コマンドを送信し、メッセージＸがフォルダＡからフォルダＢへ移動されるべきであることを示す。しかしながら、別のフォルダにメッセージＸを探し出せない場合、削除コマンドを無線デバイスへ送信し、メッセージＸがフォルダＡから削除されるべきであることを示す。
【０１０６】
ここで図１９ｂを参照すると、一実施例において、インタフェース１００は、まず、メッセージＸがフォルダＢに到着したかを検出する。これに反応して、インタフェース１００は、データオブジェクト識別コード１６０５のテーブル（例えば、図１６参照）を検索し、メッセージＸに関連した識別コード用の一致を探し出す。（１９７０での判断の結果、）一致がみつからなければ、インタフェース１００は移動コマンドを無線デバイス１３０へ送信し、メッセージＸがフォルダＡからフォルダＢへ移動されるべきであることを示す。しかしながら、インタフェース１００が識別コード一致を探し出さない場合は、削除コマンドを無線デバイスへ送信し、メッセージＸがフォルダＡから削除されるべきであることを示す。
【０１０７】
無線デバイス１３０が、延長期間のあいだサービス１０２と“接触外”であった場合、同期するのに必要な非常に多数のトランザクションが蓄積する。したがって、一実施例において、デバイス上の帯域幅及び時間の両方の節約のために（例えば、それを非同期データであふれさせない）、幾つかのデータの典型的な部分を送信することができる。例えば、無線デバイス１３０が２週間、停止していた場合、メッセージヘッダのみ（即ち、メッセージ本文でなく）をそのデバイスへ送信することができる。これの基本的な理由は、ユーザがデバイス上の古いメイルすべてを読み出すことを望まない／必要としないのが殆どだからである。
【０１０８】
一実施例において、ユーザによって、延長期間後にデータがデバイスへ伝送される特別の方法を選択することができる。この結果、ユーザはある時間期間を選択することができ、それ以降のヘッダのみが送信される（例えば、１週間以上古いもの、送信されなかったものなど）。いずれにしても、ユーザはヘッダが送信された後で、完全なメッセージ本文を要求することができる。
【０１０９】
ここで用いられるように、「ゼロ  デスクトップ  インストール」は無線デバイス１３０の能力を意味し、ユーザのデスクトップコンピュータにどんなクライアントソフトウェアもインストールすることなく正常に機能させることをいう。本発明の一実施例では、デスクトップを要求しない。というのは、前述したように、無線デバイスによって、メッセージングの特徴のすべて（例えば、デバイスオプションの管理、メッセージングサービスの構成、メッセージングフィルタ、発信Ｅメイルの署名、安全性の設定など）にアクセスすることができる。最新の無線デバイスは全メッセージング機能の部分集合しかサポートしていないので、この特長は最新のメッセージングシステムでは有効でない。よって、最新システムは、同期処理を完成させるためにデスクトップソフトウェア及び架台（クレードル）を必要とする。
【０１１０】
一実施例において、無線デバイスの構成設定は、メッセージングサーバに記憶され、絶え間なく更新される。したがって、デバイス設定が消失された場合（例えば、デバイスがインストールされたり、無くなったりするなどして）、その設定をメッセージデータと一緒に自動的に回復することができる。実際、一実施例において、メッセージングサーバに同期しないデバイスに固有なデータはまったく無いので、デバイスをバックアップする必要はない。
【０１１１】
さらに、一実施例において、ソフトウェアのアップグレードは、デバイスに対して無線で送信され、これにより、デバイスとデスクトップ間に要求される任意のリンクを完全に除去することができる。ソフトウェアアップグレードは、アプリケーションのインストールと同様に、デバイスのオペレーティングシステムへのアップグレードも含む。
【０１１２】
本発明の実施例は、前述したような様々なステップを含むことができる。装置で実行可能な命令にそのステップを埋め込むことができる。その命令は、汎用目的又は特定目的のために用いることができ、所定のステップを実行する。あるいはまた、ステップを実行するハードウェアロジックを含んだ特定のハードウェア要素によって、又はプログラムされたコンピュータ要素と顧客ハードウェア要素との任意の組み合わせによって、これらのステップを実行することができる。
【０１１３】
また、本発明の要素は、装置で実行可能な命令を記憶する読み出し可能な記録媒体として提供されることができる。この読み出し可能な記録媒体は、これらに限定するものではないが、フロッピー（登録商標）ディスク、光ディスク、ＣＤ−ＲＯＭ、磁気光ディスクづく、ＲＯＭ，ＲＡＭ，ＥＰＲＯＭ、ＥＥＰＲＯＭ，磁気又は光カード、伝播媒体又は他のタイプの媒体／電子的命令を記憶するのに適した読み出し可能な媒体を含んでいる。
【０１１４】
例えば、本発明は、通信リンク（例えば、モデム又はネットワーク接続）を経由した搬送波又は他の伝播媒体に埋め込まれたデータ信号方法によって、遠隔コンピュータ（例えば、サーバ）から要求側のコンピュータ（例えば、クライアント）へ転送されるコンピュータプログラムとしてダウンロードされる。
【０１１５】
先の記述の全般について言えることだが、多くの特定した詳細は、説明をする上で本発明の全体の理解をするために提供されたものである。しかしながら、本発明の当業者であればこれら特定の詳細がなくても実行可能であることは明白である。例えば、サーバ１０３上で実行されるサービス１０２に対するインタフェース１００が図示されているが（図１参照）、本発明の基本的原理は、ネットワーク上でデータを伝送する単一のクライアント上で実行されてもよいことは明白であろう。さらに、無線データ処理デバイスの内容で述べられているが、本発明の基本的原理は、実質的には、有線と無線の両方の任意のネットワーク環境で、データを圧縮するために実行することもできる。したがって、本発明の範囲及び精神は、特許請求の範囲で判断されるべきである。
【図面の簡単な説明】
【０１１６】
【図１】本発明の要素を実行するために用いられる典型的なネットワークアーキテクチャを示す図である。
【図２】圧縮データ用のシステムの一例を示す図である。
【図３ａ−３ｃ】Ｅメイルメッセージに関係した典型的なシーケンス図である。
【図４】前メッセージで見つかった冗長データを用いてデータを圧縮する方法の一例を示した図である。
【図５】状態に基づく圧縮を実行する装置の一例を示した図である。
【図６】状態に基づくデータ圧縮フォーマットの一例を示した図である。
【図７】本発明の一実施例による、データを圧縮するために用いるコード単語テーブルを示す図である。
【図８】コード単語でデータを圧縮する方法の一例を示した図である。
【図９】複数の他の圧縮モジュール間でデータ圧縮タスクを調整するテキスト圧縮モジュールを示す図である。
【図１０】本発明の一実施例による、圧縮されたデータフォーマットを示す図である。
【図１１】無線デバイスとサービス間のメッセージトランザクションを同期させるシステムの一実施例を示す図である。
【図１２】無線デバイスとサービス間のメッセージトランザクションを同期させるシステムの改良した実施例を示す図である。
【図１３】バッチ処理モードを入力するかどうかを判断する方法を示す図である。
【図１４】マルチレベルのバッチ処理を用いる本発明の実施例を示す図である。
【図１５】順序よく制御機能を用いる本発明の実施例を示した図である。
【図１６】同期識別コードを標準識別コードにマッピングする本発明の一実施例を示す図である。
【図１７】データオブジェクトのバージョン不一致（コンフリクト）を検出かつ解決する本発明の一実施例を示す図である。
【図１８】削除コマンド及び新たなコマンドの代わりに、無線デバイスに対して移動コマンドを送信する本発明の一実施例を示す図である。
【図１９ａ−１９ｂ】移動コマンドを生成する方法の実施例を示す図である。
【図１】
2005521938.tif 000004
【図２】
2005521938.tif 000005
【図３ａ】
2005521938.tif 000006
【図３ｂ】
2005521938.tif 000007
【図３ｃ】
2005521938.tif 000008
【図４】
2005521938.tif 000009
【図５】
2005521938.tif 000010
【図６】
2005521938.tif 000011
【図７】
2005521938.tif 000012
【図８】
2005521938.tif 000013
【図９】
2005521938.tif 000014
【図１０】
2005521938.tif 000015
【図１１】
2005521938.tif 000016
【図１２】
2005521938.tif 000017
【図１３】
2005521938.tif 000018
【図１４】
2005521938.tif 000019
【図１５】
2005521938.tif 000020
【図１６】
2005521938.tif 000021
【図１７】
2005521938.tif 000022
【図１８】
2005521938.tif 000023
【図１９ａ】
2005521938.tif 000024
【図１９ｂ】
2005521938.tif 000025
【国際調査報告】
2005521938.tif 000026
2005521938.tif 000027
2005521938.tif 000028