(57)【特許請求の範囲】
【請求項１】
第１コンピュータからモバイル・デバイスへオブジェクトを転送する方法であって、前記第１コンピュータは、電子メール・オブジェクトを保持するように構成した第１のアプリケーション・プログラムを含み、１つの電子メール・オブジェクトは、前記第１コンピュータが受信した各電子メール・メッセージに対応し、前記第１コンピュータは、前記電子メール・メッセージに関連したアタッチメントを保持するように構成し、前記第１コンピュータは、前記電子メール・オブジェクトを格納するように構成した第１のオブジェクト・ストアを含み、前記モバイル・デバイスは、前記第１コンピュータに結合可能であり、前記モバイル・デバイスは、第２のオブジェクト・ストアと、前記モバイル・デバイスに同期させた各電子メール・オブジェクトに対応する第２の電子メール・オブジェクトを前記第２の前記第２のオブジェクト・ストアに保持するように構成した第２のアプリケーション・プログラムとを含み、前記方法は、
前記モバイル・デバイスが、前記同期させた電子メール・オブジェクトに関連したアタッチメントを同期のためにユーザに予め選択できるようにするステップと、
前記モバイル・デバイスが前記第１コンピュータに次に結合されたときに、前記モバイル・デバイスが、前記選択されたアタッチメント要求を前記第１コンピュータに送るステップと、
前記第１コンピュータが、前記モバイル・デバイスに対し、前記モバイル・デバイスに同期させた前記電子メール・オブジェクトに関連した前記予め選択されたアタッチメントを転送するステップと、
から成る転送方法。
【請求項２】
請求項１記載の方法において、前記第２電子メール・オブジェクトは、前記第２電子メール・オブジェクトが表す前記電子メール・メッセージがアタッチメントを含むかどうかを示す値を有するプロパティを含むこと、を特徴とする転送方法。
【請求項３】
請求項１記載の方法において、前記第１コンピュータが、前記予め選択されたアタッチメントを転送するステップは、
前記第１コンピュータが、アタッチメント要求を示す前記第２電子メール・オブジェクト内の変更を検出するステップと、
前記モバイル・デバイスが次に前記第１コンピュータに結合されたときに、前記第１コンピュータが、前記予め選択されたアタッチメントを、前記アタッチメント要求に基づいて前記モバイル・デバイスに転送するステップと、
から成ること、を特徴とする転送方法。
【請求項４】
請求項３記載の方法において、前記第１アプリケーション・プログラムは、第１のアプリケーション・プログラム・インターフェースを含み、前記第２アプリケーション・プログラムは、第２のアプリケーション・プログラム・インターフェースを含み、前記第１コンピュータが、前記予め選択されたアタッチメントを転送するステップは、
前記第１コンピュータが、前記第１アプリケーション・プログラム・インターフェースを通して前記第１アプリケーション・プログラムと通信することにより、前記１オブジェクト・ストアから前記予め選択されたアタッチメントを検索するステップと、
前記第１コンピュータが、前記第２アプリケーション・プログラム・インターフェースを通して前記第２アプリケーション・プログラムと通信することにより、前記予め選択されたアタッチメントを前記第２オブジェクト・ストアに配信するステップと、
から成ること、を特徴とする転送方法。
【請求項５】
請求項４記載の方法において、前記第１コンピュータは、前記第１および第２のアプリケーション・プログラム・インターフェースを通してそれぞれ前記第１および第２のアプリケーション・プログラムと通信するように構成した同期コンポーネントを含み、前記第１コンピュータが、前記変更を検出するステップが、
前記第１コンピュータが、前記同期コンポーネントで前記第２電子メール・オブジェクト内の前記変更を検出するステップ、
から成ること、を特徴とする転送方法。
【請求項６】
請求項５記載の方法において、前記第１コンピュータが、前記第１アプリケーション・プログラム・インターフェースを通して前記第１アプリケーション・プログラムと通信するステップは、前記同期コンポーネントで実行すること、を特徴とする転送方法。
【請求項７】
請求項５記載の方法において、前記第１コンピュータが、前記第２アプリケーション・プログラム・インターフェースを通して前記第２アプリケーション・プログラムと通信するステップは、前記同期コンポーネントで実行すること、を特徴とする転送方法。
【請求項８】
請求項１記載の方法であって、さらに、
前記第１コンピュータが前記アタッチメントを前記モバイル・デバイスに転送する前に、前記第１コンピュータが、前記モバイル・デバイスに関連した伝送パラメータにアクセスするステップと、
前記第１コンピュータが、前記アタッチメントを、前記のアクセスした伝送パラメータにしたがって転送するステップと、
を含むこと、を特徴とする転送方法。
【請求項９】
請求項８記載の方法において、前記第１コンピュータが、前記予め選択されたアタッチメントを前記伝送パラメータにしたがって転送するステップとは、
前記第１コンピュータが、前記予め選択されたアタッチメントに対し実行すべき希望のファイル変換を示す変換パラメータを検索するステップと、
前記第１コンピュータが、前記予め選択されたアタッチメントに対し前記希望のファイル変換を実行するステップと、
を含むこと、を特徴とする転送方法。
【請求項１０】
請求項１に記載の方法において、
前記モバイル・デバイスに電子メール・オブジェクトを同期させる前に、前記第１コンピュータが、１組のユーザ定義のフィルタ・パラメータにアクセスするステップと、
前記第１コンピュータが、前記電子メール・オブジェクトを前記フィルタ・パラメータにしたがって同期させるステップと、
から成ること、を特徴とする転送方法。
【請求項１１】
請求項１０に記載の方法において、前記第１コンピュータが、前記フィルタ・パラメータに従って同期させるステップは、
前記第１コンピュータが、前記第２の電子メール・オブジェクトを作成して、前記電子メール・メッセージに関連したユーザ指定の行数のテキストだけを提供するステップ、
を含むこと、を特徴とする転送方法。
【請求項１２】
請求項１０に記載の方法において、前記第１コンピュータが、前記フィルタ・パラメータにしたがって同期させるステップは、
前記第１コンピュータが、前記電子メール・メッセージをトランスポートするのに使用しかつ前記１電子メール・オブジェクト内で識別したタイプのトランスポートにしたがって前記電子メール・オブジェクトを同期させるステップ、
から成ること、を特徴とする転送方法。
【請求項１３】
第１のコンピュータに結合可能なモバイル・デバイスであって、前記第１コンピュータが、電子メール・オブジェクトを保持するように構成した第１のアプリケーション・プログラムを含み、１つの電子メール・オブジェクトが、前記第１コンピュータが受信した各電子メール・メッセージに対応する、前記の第１のアプリケーション・プログラムと、前記電子メール・オブジェクトを格納するように構成した第１のオブジェクト・ストアと、前記第１のオブジェクト・ストアからの前記電子メール・オブジェクトを第２のオブジェクト・ストアからのオブジェクトと同期させるように構成した同期コンポーネントと、を含み、前記モバイル・デバイスが、
第２のオブジェクト・ストアと、
前記モバイル・デバイスに同期させた各電子メール・オブジェクトに対応する第２の電子メール・オブジェクトを、前記第２オブジェクト・ストアに保持するように構成した第２のアプリケーション・プログラムであって、前記第２アプリケーション・プログラムは、前記モバイル・デバイスに同期させた第２の電子メール・オブジェクトに関連した、予め選択されたアタッチメントを受信し格納するように構成した、前記の第２のアプリケーション・プログラムと、
から成るモバイル・デバイス。
【請求項１４】
請求項１３記載のモバイル・デバイスであって、さらに、
前記第２電子メール・オブジェクトが表す前記電子メール・メッセージが関連のアタッチメントを含むかどうか示すアタッチメントの印を提供するユーザ・インターフェースと、
前記アタッチメントを受けるためのユーザによるコマンドを示すユーザ入力信号を提供するユーザ入力デバイスであって、前記ユーザ入力信号が前記第２電子メール・オブジェクトに関連したプロパティを変更する、前記のユーザ入力デバイスと、
を含むこと、を特徴とするモバイル・デバイス。
【請求項１５】
請求項１４記載のモバイル・デバイスにおいて、前記第１アプリケーション・プログラムは、第１のアプリケーション・プログラム・インターフェースを含み、前記第２アプリケーション・プログラムは、第２のアプリケーション・プログラム・インターフェースを含み、前記モバイル・デバイスは、前記第２電子メール・オブジェクトを前記第１コンピュータに提供するように構成し、これにより、前記同期コンポーネントが、前記プロパティが変更されたことを認識し、そして前記第１アプリケーション・プログラム・インターフェースを通して前記第１アプリケーション・プログラムと通信することにより、前記１オブジェクト・ストアから前記予め選択されたアタッチメントを検索し、そして前記第２アプリケーション・プログラム・インターフェースを通して前記第２アプリケーション・プログラムと通信することにより、前記予め選択されたアタッチメントを前記第２オブジェクト・ストアに配信すること、を特徴とするモバイル・デバイス。
【発明の詳細な説明】
【０００１】
（発明の背景）
モバイル・デバイスは、パーソナル・デジタル・アシスタントとも呼ばれることが多い小型の電子計算デバイスである。１つのこのようなモバイル・デバイスは、マイクロソフト社（Microsoft Corporation of Redmond, Washington）による販売のWindows CEオペレーティング・システムをベースとししかもこれを含むハンドヘルドＰＣ（または“Ｈ／ＰＣ”）である。このようなモバイル・デバイスによって広範な計算タスクおよびアプリケーションを実行することができるが、パーソナル情報マネージャ（ＰＩＭ）は、モバイル・デバイスに特に良く適している。
【０００２】
ＰＩＭは、代表的には、このモバイル・デバイスのユーザがスケジューリングおよび通信並びに他のそのようなタスクをより良好に管理できるようにするアプリケーションから成っている。ある種の一般に入手可能なＰＩＭは、スケジューリングおよびカレンダのプログラム、タスク・リスト、アドレス・ブック、および電子メール（e-mail）プログラムを含んでいる。ある種の一般に入手可能なＰＩＭは、Microsoft Schedule+ ，Microsoft outlookのブランド名で販売されており、マイクロソフト社（Microsoft Corporation of Redmond, Washington）から市販されている。
【０００３】
また、モバイル・デバイスを１以上のデスクトップ・コンピュータと共に用いることも一般的である。例えば、モバイル・デバイスのユーザは、職場または家庭において、あるいはその双方において、デスクトップ・コンピュータにアクセスすることや、使用することもできる。ユーザは、通常、デスクトップ・コンピュータおよびモバイル・ユニット双方で同じタイプのＰＩＭを走らせることができる（但し、ＰＩＭの特定のバージョンは、デスクトップ・コンピュータとモバイル・デバイスとでは幾分異なっていることがある）。したがって、モバイル・デバイスをデスクトップ・コンピュータと結合可能にして、それと情報を交換したり、情報を共有するように設計することは非常に有利である。
【０００４】
また、ユーザは、通常、モバイル・デバイスとデスクトップの双方におけるＰＩＭに対し変更を行うこともできる。したがって、モバイル・デバイスとデスクトップの双方におけるＰＩＭに、最も最新の情報を収容させるようにすることは、ＰＩＭに対する最新の変更がモバイル・デバイスあるいはデスクトップ・コンピュータのいずれにおいて行われたかに拘わらず、有益である。モバイル・デバイスをデスクトップ・コンピュータに結合し、そしてモバイル・デバイスとデスクトップ・コンピュータのＰＩＭが格納している情報を統合（integrate）させることによって、その２つが同じ更新された情報を含むようにするこのプロセスは、同期（synchronization）と呼ばれている。
【０００５】
電子メール・メッセージングをサポートする従来のＰＩＭは、普通、電子メール・メッセージの送信者がその電子メール・メッセージにドキュメントあるいはその他のファイルを電子的に添付して、そのアタッチメント（attachment）を電子メール・メッセージと共にその電子メール・メッセージの受信者に送出できるようにする能力を提供している。従来のモバイル・デバイスの中には、電子メール・メッセージのこの同期を可能にするように設計されたものがある。しかし、これまで、その同期は、アタッチメントのない電子メール・メッセージのみに対し向けられている。言い換えれば、電子メール・メッセージの同期の間においては、それらアタッチメントは、これまでは、電子メール転送から取り除かれ、モバイル・デバイスのユーザが電子メール・メッセージ自体のみを受信するようにされており、それらアタッチメントは、そのメッセージから取り除かれしたがってモバイル・デバイスのユーザがアクセスすることができなかった。
【０００６】
デスクトップ・コンピュータとモバイル・デバイスとの間の相互作用を定めた環境において、電子メール・メッセージの転送を取り扱うときに、多くの相当の障害が出現する。先ず、代表的なモバイル・デバイスは、デスクトップ・コンピュータと比べ、メモリの量がかなり限られている。従来のＰＩＭがサポートするアタッチメントは、普通、単にテキスト・ファイルあるいはドキュメントだけではなく、図面、グラフ、チャート等のメモリにとってより厳しいファイルもある。したがって、電子メール・メッセージに対するアタッチメントの同期は、メモリ容量の点から困難な問題を呈する。また、モバイル・デバイスのメモリを占有せずに十分な電子メール・アドレス・ブックを提供することは、問題を提起する。
【０００７】
さらに、多くのアタッチメントは、モバイル・デバイスのユーザにとっては、ユーザがデスクトップにいない限り、不要となることがある。言い換えれば、ユーザは、アタッチメントを見ることができるデスクトップにいてそしてこの環境においてそれらアタッチメントに対し働きかけることがない限り、多くのアタッチメントを見ることを希望しないことがある（しかも確かにそれを見る利益もないことがある）。
【０００８】
加えて、あるユーザは、デスクトップ・コンピュータと同期させることを希望しないソースからの電子メール・メッセージを受けることもある。例えば、この能力を、モバイル・デバイスを２以上のデスクトップ・コンピュータに結合するために提供した場合、ユーザは、他方の計算デバイスとモバイル・デバイスの双方における情報全てを同期させることを希望しない場合がある。このため、メッセージ間の適当な識別もまた、問題を提起する。
【０００９】
（発明の摘要）
本発明の１つの形態は、少なくとも部分的には、デスクトップ・コンピュータにおいて電子メール・メッセージと共に受け取った全てのアタッチメントあるいは少なくともある種のアタッチメントを見ることが大いに望ましいと考えているユーザがいる、という考えから生じたものである。加えて、本発明は、少なくとも部分的には、モバイル・デバイスのユーザにとって、ユーザが、アドホック・ベースで、あるいは予め選択可能なフィルタリング規準にしたがって選択した、電子メール・メッセージに対するある種のアタッチメントのみを受けることが望ましい、という考えから生じたものである。
【００１０】
デスクトップ・コンピュータとモバイル・デバイスの双方は、電子メール・アプリケーションのようなパーソナル情報管理システムを含む。電子メール・アプリケーション内のオブジェクトは、デスクトップ・コンピュータとモバイル・デバイスとの間で同期させ、これにより、電子メール・メッセージへのアタッチメントを、モバイル・デバイスにより見ることができるようにする。
【００１１】
モバイル・デバイスの電子メール・アプリケーションを使用する間、ユーザは、このデバイスにデスクトップ・コンピュータからダウンロードされていない個々のアタッチメントを要求することができる。同期の間において、モバイル・デバイス上の電子メール・メッセージ・オブジェクトにおける変化（これは、モバイル・デバイス上のあるアタッチメントを得ようとするユーザの希望を反映）は、デスクトップ・コンピュータが検出する。これに応答して、デスクトップ・コンピュータ上の同期コンポーネントは、アプリケーション・プログラミング・インターフェースを操作し、そしてこのインターフェースは、デスクトップ・コンピュータ上の電子メール・メッセージ・オブジェクト・ストアへのアクセスを制御して、その識別したアタッチメントを検索する。次に、同期コンポーネントは、モバイル・デバイス上のオブジェクト・ストアが利用するリモート・アプリケーション・プログラミング・インターフェースを操作して、その識別したアタッチメントをモバイル・デバイス上の電子メール・メッセージ・オブジェクト・ストアに転送する。
【００１２】
本発明の別の形態は、モバイル・デバイスのユーザに、メッセージ毎での個々の電子メール・メッセージ・アタッチメントの動的な検索を可能にする。さらに、フィルタリング技術を実装することにより、同期の間において、予め定めたアタッチメントのみを、モバイル・デバイス上の電子メール・メッセージ・オブジェクト・ストアに自動的に提供するようにできる。
【００１３】
本発明の別のフィーチャは、モバイル・デバイス上の電子メール・メッセージング・アプリケーションを構成することにより、アプリケーション・プログラミング・インターフェースを利用してモバイル・デバイス上の縮小したディレクトリからアドレス情報を検索する。さらに、モバイル・デバイスは、デスクトップ・コンピュータに関連したのと同じ解決フィーチャを用いるように構成でき、これにより、馴染みのあるネームを使ってモバイル・デバイスにあるメッセージを効率的な方法でアドレスできるようにする。本発明はまた、同期アーキテクチャを提供し、これは、モデル間に結合可能な２以上の他の計算機デバイスからの電子メール・メッセージの統合のような電子メール・メッセージの希望しない統合を軽減する。
【００１４】
（好ましい実施形態の詳細な説明）
図１は、本発明が動作する典型的なシステムまたは環境２のブロック図である。環境２は、モバイル・デバイス３とデスクトップ・コンピュータ４とを含む。モバイル・デバイス３は、アプリケーション・プログラム５とオブジェクト・ストア６を備えている。デスクトップ・コンピュータ４も、アプリケーション・プログラム７とオブジェクト・ストア８とを備えている。モバイル・デバイス３とデスクトップ・コンピュータ４とは、複数の接続機構９の内の１つによって接続可能である。
【００１５】
図２およびこれに関連する論述は、本発明を実現可能な適切なデスクトップ・コンピュータ４の全体的な説明を手短に行うことを意図するものである。必ずしも必要ではないが、本発明の説明は、少なくとも部分的に、パーソナル・コンピュータ４またはモバイル・デバイス３が実行するプログラム・モジュールのようなコンピュータ実行可能命令に関して概略的に行うこととする。一般に、プログラム・モジュールは、特定のタスクを実行したり、あるいは特定の抽象的データ形式を使用する、ルーチン・プログラム、オブジェクト、コンポーネント、データ構造等を含む。さらに、デスクトップ・コンピュータ４は、マルチプロセッサ・システム、マイクロプロセッサをベースとするあるいはプログラマブルの消費者用電子機器、ミニコンピュータ、メインフレーム・コンピュータ等を含む、その他のコンピュータ・システム・コンフィギュレーションで実施可能であることを当業者は認めよう。また、本発明は、分散型計算機環境において、通信ネットワークを通じてリンクしたリモート処理デバイスによってタスクを実行するという実施も可能である。ある分散型計算機環境においては、プログラム・モジュールは、ローカルおよびリモートのメモリ・ストレージ・デバイスの双方に配置することができる。
【００１６】
図２を参照すると、デスクトップ・コンピュータ４を実現するためのシステム例は、従来のパーソナル・コンピュータ４の形態とした汎用計算機を含み、処理ユニット（ＣＰＵ）２１、システム・メモリ２２、およびシステム・メモリから処理ユニット２１までを含む種々のシステム・コンポーネントを結合するシステム・バス２３を含む。システム・バス２３は、種々のバス・アーキテクチャのいずれかを用いたメモリ・バスまたはメモリ・コントローラ、周辺バス、およびローカル・バスを含む、数種類のバス構造のいずれでもよい。このシステム・メモリは、リード・オンリ・メモリ（ＲＯＭ）２４、およびランダム・アクセス・メモリ（ＲＡＭ）２５を含む。起動中等においてデスクトップ・コンピュータ４内のエレメント間の情報転送に供する基本ルーチンを収容する基本入出力システム（ＢＩＯＳ）２６は、ＲＯＭ２４に格納してある。また、デスクトップ・コンピュータ４は、ハード・ディスク（図示せず）の読み取りおよび書き込みを行うハード・ディスク・ドライブ２７、リムーバブル磁気ディスク２９の読み取りおよび書き込みを行う磁気ディスク・ドライブ２８、並びにＣＤ−ＲＯＭまたはその他の光媒体のようなリムーバブル光ディスク３１の読み取りおよび書き込みを行う光ディスク・ドライブ３０も含むことができる。ハード・ディスク・ドライブ２７、磁気ディスク・ドライブ２８、および光ディスク・ドライブ３０は、ハード・ディスク・ドライブ・インターフェース３２、磁気ディスク・ドライブ・インターフェース３３、および光ドライブ・インターフェース３４によって、それぞれシステム・バス２３に接続してある。これらのドライブおよびそれに関連するコンピュータ読み取り可能媒体は、コンピュータ読み取り可能命令、データ構造、プログラム・モジュール、およびデスクトップ・コンピュータ４用のその他のデータの不揮発性格納を行う。
【００１７】
ここに記載する環境の一例は、ハード・ディスク、リムーバブル磁気ディスク２９およびリムーバブル光ディスク３１を採用するが、磁気カセット、フラッシュ・メモリ・カード、ディジタル・ビデオ・ディスク（ＤＶＤ）、ベルヌーイ・カートリッジ、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）等のような、コンピュータによるアクセスが可能なデータを格納することができる、他の種類のコンピュータ読み取り可能媒体も、動作環境の一例において使用可能であることは、当業者には認められよう。
【００１８】
多数のプログラム・モジュールを、ハード・ディスク、磁気ディスク２９、光ディスク３１、ＲＯＭ２４またはＲＡＭ２５上に格納することができ、オペレーティング・システム３５、１つ以上のアプリケーション・プログラム３６（ＰＩＭ７を含む）、その他のプログラム・モジュール３７、およびプログラム・データ３８を含む。ユーザは、キーボード４０、ポインティング・デバイス４２およびマイクロフォン４３のような入力デバイスによって、コマンドおよび情報をデスクトップ・コンピュータ４に入力することができる。他の入力デバイス（図示せず）として、ジョイスティック、ゲーム・パッド、衛星パラボラアンテナ（satellite dish）、スキャナ等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、システム・バス２３に結合したシリアル・ポート・インターフェース４６を介して、処理ユニット２１に接続しているが、サウンド・カード、パラレル・ポート、ゲーム・ポートまたはユニバーサル・シリアル・バス（ＵＳＢ：universal serial bus）のようなその他のインターフェースによって接続することも可能である。モニタ４７または別のタイプのディスプレイ・デバイスも、ビデオ・アダプタ４８のようなインターフェースを介して、システム・バス２３に接続する。モニタ４７に加えて、デスクトップ・コンピュータは、通常、スピーカ４５やプリンタのような、その他の周辺出力デバイスを含むこともできる。
【００１９】
デスクトップ・コンピュータ４は、リモート・コンピュータ４９のような１つ以上のリモート・コンピュータ（モバイル・デバイス３以外）への論理接続を用いて、ネットワーク環境で動作することも可能である。リモート・コンピュータ４９は、別のパーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア・デバイス、またはその他のネットワーク・ノードとすることができ、通常、デスクトップ・コンピュータ４に関して先に記載したエレメントの多くまたは全てを含むが、メモリ・ストレージ・デバイス５０だけを図２に示す。図２に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）５１およびワイド・エリア・ネットワーク（ＷＡＮ）５２を含む。このようなネットワーク環境は、事務所、企業規模のコンピュータ・ネットワーク・イントラネットおよびインターネットでは一般的である。
【００２０】
ＬＡＮネットワーク環境で用いる場合、デスクトップ・コンピュータ４は、ネットワーク・インターフェースまたはアダプタ５３を介して、ローカル・エリア・ネットワーク５１に接続する。ＷＡＮネットワーク環境で用いる場合、デスクトップ・コンピュータ４は通常モデム５４またはインターネットのようなワイド・エリア・ネットワーク５２上で通信を確立するその他の手段を含む。モデム５４は、内蔵型でも外付け型でもよく、シリアル・ポート・インターフェース４６を介してシステム・バス２３に接続する。ネットワーク環境では、デスクトップ・コンピュータ４に関して図示したプログラム・モジュールまたはその一部を、リモート・メモリ・ストレージ・デバイスに格納することも可能である。図示のネットワーク接続は一例であり、コンピュータ間に通信リンクを確立するその他の手段も使用可能であることは認められよう。
【００２１】
デスクトップ・コンピュータ４は、不揮発性メモリ２４に通常格納したオペレーティング・システムを走らせ、処理ユニット２１上で実行する。適切なオペレーティング・システムの１つは、Windows95またはWindows NT、あるいはWindowsブランドのオペレーティング・システムの別の派生バージョンのような、マイクロソフト社が販売するWindowsブランドのオペレーティング・システム、あるいは別の適切なオペレーティング・システムである。他の適切なオペレーティング・システムには、アップル社（Apple Corporation）が販売するMacintosh OSや、ＩＢＭ社（International Business Machines of Armonk, New York）が販売するＯＳ／２プレゼンテーション・マネージャのようなシステムが含まれる。ＰＩＭ７は、好ましくは、プログラム・モジュール３７、揮発性メモリあるいは不揮発性メモリ内に格納するが、さもなければ図２に示したコンポーネントのいずれかにフロッピー・ディスケット２９，ＣＤＲＯＭドライブ３１からロードしたり、あるいはネットワーク・アダプタ５３からダウンロードしたり、もしくは別の適当な機構を使ってロードすることができる。
【００２２】
複数の実行可能な機能を構成するダイナミック・リンク・ライブラリ（ＤＬＬ）は、プロセッサ２１による実行のためＰＩＭ７に関連している。プロセッサ間（interprocessor）およびコンポーネント間（intercomponent）の呼び出しは、好ましくは、マイクロソフトWINDOWSブランドのオペレーティング・システムに対し書かれたプログラムに共通のコンポーネント・オブジェクト・モデル（ＣＯＭ）を使って容易になる。簡単には、ＣＯＭを使用するとき、ＤＬＬのようなソフトウェア・コンポーネントは、多数のインターフェースを有する。各インターフェースは、複数のメソッドを露出（expose）し、これらメソッドを個々に呼び出すことによって、このソフトウェア・コンポーネントが提供する異なった種々のサービスを利用することができる。加えて、インターフェースを提供することにより、メソッドまたは機能を他のソフトウェア・コンポーネントから呼び出すことができ、これらソフトウェア・コンポーネントは、オプションとして１以上のパラメータ引数を受けそして返送する。
【００２３】
一般に、ＰＩＭ７に関連したＤＬＬは、ＰＩＭ７と共に機能し、そして同期プロトコルにしたがって機能するデスクトップ同期インターフェースを露出するように設計されている。このＤＬＬは、次に、ＰＩＭ７が露出したインターフェースを呼び出して、オブジェクト・ストア８内に保持されたオブジェクトの個々のプロパティを表すデータにアクセスするようにする。もちろん、オブジェクト・ストア８は、図２に関連して説明した適当なメモリ・コンポーネントの内の任意の１つに常駐させることができる。
【００２４】
図３は、本発明にしたがって使用可能なモバイル・デバイス３の好適な一実施形態の模式図である。モバイル・デバイス３は、１つの好ましい実施形態では、ハンドヘルドＰＣまたはＨ／ＰＣという名称で販売されているデスクトップ・アシスタントであり、マイクロソフト社が提供するWindows CEオペレーティング・システムに基づくものである。モバイル・デバイス３は、デスクトップ・コンピュータ４と同様の構成部品をいくつか有している。例えば、１つの好ましい実施形態では、モバイル・デバイス３は、小型化キーボード８２、ディスプレイ８４およびスタイラス８６を含む。
【００２５】
図３に示した実施形態においては、ディスプレイ８４は、スタイラス８６と共に用いる接触感応液晶ディスプレイ（ＬＣＤ）スクリーンとすることができる。スタイラス８６は、指定した座標においてディスプレイ・スクリーン８４を押下またはそれと接触して、あるユーザ入力機能を実行するために用いる。もちろん、他のユーザ入力コンフィギュレーションも同様に使用可能である。例えば、キーパッド、トラック・ボール、および種々のタイプの小型化キーボード等のような、ユーザ入力機構を含ませることができる。加えて、モバイル・デバイス３は、Ｈ／ＰＣブランドのデスクトップ・アシスタントとして具体化しなくてもよく、別のタイプのパーソナル・ディジタル・アシスタント（ＰＤＡ）、別のパーソナル・オーガナイザ、パームトップ・コンピュータ、あるいはこれらと同様のコンピュータ化したデバイスとして実現することも可能である。
【００２６】
図４は、モバイル・デバイス３のさらに詳細なブロック図である。モバイル・デバイス３は、マイクロプロセッサ８８、メモリ９０、入出力（Ｉ／Ｏ）コンポーネント９２（キーボード８２、並びに接触感応スクリーン８４）およびシリアル・インターフェース９４を含むことが好ましい。１つの好ましい実施形態では、モバイル・デバイス３のこれらのコンポーネントは、適切なバス９６を通じて、互いの通信のために結合している。
【００２７】
この好ましい実施形態においては、メモリ９０は、バッテリ・バックアップ・モジュール（図示せず）を備えたランダム・アクセス・メモリ（ＲＡＭ）のような不揮発性電子メモリとして実現し、モバイル・デバイス３全体の電力が遮断された場合に、メモリ９０に格納してある情報を失わないようにすることができる。メモリ９０の一部は、プログラム実行のためにアドレス可能なメモリとして割り当てることが好ましく、一方メモリ９０の別の部分は、ディスク・ドライブ上のストレージをシミュレートするために用いる。
【００２８】
メモリ９０は、オペレーティング・システム９８およびアプリケーション・プログラム（またはＰＩＭ）５を含む。オペレーティング・システム９８は、動作中、メモリ９０にロードし、そしてこのメモリからマイクロプロセッサ８８によって実行することが好ましい。オペレーティング・システム９８は、１つの好ましい実施形態においては、マイクロソフト社（Microsoft Corporation）から商業的に入手可能なWindows CEブランドのオペレーティング・システムである。このオペレーティング・システム９８は、好ましくは、モバイル・デバイス用に設計し、そして１組の露出したアプリケーション・プログラミング・インターフェースおよびメソッドを通してＰＩＭ５が利用できるデータベース・フィーチャを実装する。オブジェクト・ストア６内のオブジェクトは、好ましくは、少なくとも部分的に、露出したアプリケーション・プログラム・インターフェースおよびメソッドへの呼び出しに応答して、ＰＩＭ５およびオペレーティング・システム９８によって保持する。
【００２９】
尚、ＰＩＭ５は、必ずしも、デスクトップ・コンピュータ４上で実行するＰＩＭ７と完全に互換性を有するように設計する必要はない。例えば、特定のオブジェクト・タイプのプロパティ間に、正確な１対１の一致がなくてもよい。ＰＩＭ５の電子メール・メッセージング・フィーチャがサポートするある種のプロパティは、デスクトップ・コンピュータ４上のＰＩＭ７内に対応するフィーチャを有していない場合があり、またこの逆もある。
【００３０】
図５は、モバイル・デバイス３とデスクトップ・コンピュータ４のアーキテクチャ上のコンポーネントの１つの好ましい実施形態を示すアーキテクチャ的ブロック図であり、これらは、モバイル・デバイス３上のオブジェクト・ストア６とデスクトップ・コンピュータ４上のオブジェクト・ストア８に格納した各オブジェクトを同期させる際に使用する。ＰＩＭ５とオブジェクト・ストア６に加えて、モバイル・デバイス３は、同期インターフェース・コンポーネント１００と、同期マネージャ１０２と、通信コンポーネント９４と、リモート・アプリケーション・プログラミング・インターフェース（ＲＡＰＩ）サーバ１１６と、電子メール・メセージング・トランスポート１３２，１３４，１３６を備えている。
【００３１】
デスクトップ・コンピュータ４は、ＰＩＭ７とオブジェクト・ストア８に加えて、同期インターフェース・コンポーネント１０８と、同期マネージャ１１０と、参照ストア１１２と、ＲＡＰＩコンポーネント１１４と、通信コンポーネント１１５とを備えている。図５に示したこれらコンポーネントの多くは、主として、適当な同期プロトコルを実施するのに使用する。簡単にするため、１つの適当なプロトコルをこの出願において説明する。その他のプロトコルも同じく使用することができる。
【００３２】
一般に、同期マネージャ１１０は、デスクトップ・コンピュータ４上で実行し、そしてハンドヘルド・デバイス３内のオブジェクト・ストア６とデスクトップ・コンピュータ４内のオブジェクト・ストア８との間の同期を統制する。同期マネージャ１１０はまた、以下で詳細に述べるように、デスクトップ・オブジェクト・ストア８とは離れて参照ストア１１２を保持している。同期マネージャ１１０は、同期プロトコルを実装して、モバイル・デバイス３内のオブジェクト・ストア６とデスクトップ・コンピュータ４内のオブジェクト・ストア８とに格納された対応するオブジェクト間の比較を可能にし、オブジェクト・ストア８からのオブジェクトを受け、またオブジェクト・ストア８内のオブジェクトを更新する。この同期プロトコルはまた、モバイル・デバイス３内のオブジェクト・ストア６に格納されたオブジェクトの検索を、同期インターフェース・コンポーネント１００および同期マネージャ１０２並びに通信コンポーネント９４を通して容易にする。
【００３３】
モバイル・デバイス３の側では、同期インターフェース・コンポーネント１００は、アプリケーション・プログラミング・インターフェースを露出し、これを、同期マネージャ１０２が呼び出すことにより、オブジェクト・ストア６上におけるオブジェクトおよびオブジェクト・プロパティの読み出しおよび格納をする。一般に、このアプリケーション・プログラミング・インターフェースは、異なったタイプのオブジェクトに対するデータベースの作成を可能にし、またオブジェクト・ストア６内の各オブジェクトとの間でのプロパティ・ネームおよび値の書き込みおよび読み出しを可能にする。
【００３４】
図１を参照して説明したように、ＰＩＭ５は、モバイル・デバイス３上で実行し、そしてオブジェクト・ストア６を保持している。ＰＩＭ７は、デスクトップ・コンピュータ４上で実行し、そしてオブジェクト・ストア８を保持している。ＰＩＭ５と７がオブジェクト・ストア６と８内にオブジェクトを格納するのに多くの異なった方法がある。しかし、好ましい実施形態においては、ＰＩＭ５と７は、各オブジェクト・タイプに対し区別できるデータベースを作成する。例えば、アポイントメント、タスク、電子メール・メッセージ等に対し、異なったデータベースを作成する。予め定めた１組のプロパティは、各オブジェクト・タイプに対しサポートし、そしてこれらデータベースの各々には、これを作成するアプリケーション・プログラムがネームを割り当てる。
【００３５】
代替の実施形態においては、ＰＩＭ５と７内のアプリケーション・プログラムは、全てのオブジェクト・タイプに対し単一のデータベースを使用することができ、各オブジェクトの第１のプロパティがオブジェクトのタイプを定めるようにできる。いずれの場合も、オブジェクトは、モバイル・デバイス３およびデスクトップ・コンピュータ４内でオブジェクト識別子により一意に識別し、この識別子は、そのオブジェクトを作成したアプリケーション・プログラムが割り当てたネームとは独立である。
【００３６】
同期マネージャ１１０は、必ずしもＰＩＭ７と密接に関連させる必要はない。むしろ、これは、独立のコンポーネントであって、適当なデスクトップ同期インターフェースをサポートする任意のアプリケーション・プログラムからのオブジェクトを同期させるものである。通信コンポーネント９４と１１５は、適当なリンク９を使用する各コンピュータ間のシリアル通信を実装する。
【００３７】
同期マネージャ１１０は、ＰＩＭ７と通信し、そして同期インターフェース・コンポーネント１０８を介してオブジェクト・ストア８にアクセスする。同期インターフェース・コンポーネント１０８は、一般には上で図２を参照して説明したＤＬＬに対応し、そして１つ以上のアプリケーション・プログラム・インターフェースおよびメソッドを露出する。これらインターフェースおよびメソッドは、好ましくは、ストア・インターフェースとして知られた形態のものであり、例えば、windowsブランドのオペレーティング・システム・プラットフォームに対しマイクロソフト社が開発し公開したIreplStore，IreplObjHandlerがある。これらインターフェースは、さらに、メッセージング・アプリケーション・プログラミング・インターフェース（ＭＡＰＩ）およびＯＬＥオートメーション（または任意のその他のアプリケーション・プログラミング・インターフェース）の一方または双方のようなインターフェースを使用することにより、基礎となるＰＩＭおよびオブジェクト・ストアと通信する。１つの好ましい実施形態においては、コンポーネント１０８が露出するＭＡＰＩは、Ｃ言語のアプリケーション・プログラミング・インターフェースであり、これは、マイクロソフト社から入手可能なＭＳ  Ｍａｉｌとして知られた電子メール・メッセージング・プログラムの各特徴に対するプログラマブルのアクセスを可能にする。別の好ましい実施形態においては、コンポーネント１０８が露出するＭＡＰＩは、コンポーネント・オブジェクト・モデルをベース（ＣＯＭベース）とする１組のインターフェースであり、これは、拡張ＭＡＰＩとも呼ぶことがあり、これは、ビジュアル・ベーシック等において使用するため、メッセージング・システムに対する１組のオートメーション・インターフェースを含む。しかし、同期インターフェース・コンポーネント１０８とこれに関連するアプリケーション・プログラム・インターフェースおよびメソッドは、ＰＩＭ７内の任意の特定のアプリケーションに対し設計した任意の適当な同期インターフェース・コンポーネントとすることができる。このアプリケーション・プログラム・インターフェースは好ましくは標準化しているため、これらは、必要なインターフェース・メソッドを各ＰＩＭに対し実施する限り、同期マネージャ１１０が、任意の数の異なったデスクトップＰＩＭにアクセスしこれらを同期させることができるようにする。
【００３８】
参照ストア１１２は、モバイル・デバイス３上のオブジェクト・ストア６内に格納されたオブジェクトのインスタンスと、デスクトップ・コンピュータ４上のオブジェクト・ストア８内に格納されたオブジェクト間のマッピングを提供する。ＰＩＭ７がオブジェクト・ストア８内のオブジェクト識別するのに使用するのと同じオブジェクト識別子は、ＰＩＭ５がオブジェクト・ストア６上のオブジェクトを識別するのに使用しないため、このマッピングが必要である。
【００３９】
同期マネージャ１１０は、参照ストア１１２を保持することにより、参照ストア１１２が、モバイル・デバイス３上のオブジェクト・ストア６内の同じオブジェクトのインスタンスと同期させるべき、デスクトップ・コンピュータ４上のオブジェクト・ストア８内の複数のオブジェクト・インスタンスにそれぞれ対応した識別するデータ・セグメントを含むようにする。この識別データ・セグメントは、対応するオブジェクト・インスタンスを同期させる度に更新する。
【００４０】
特定のオブジェクト・インスタンスを識別するのに使用する１つの識別データ・セグメントの正確な組立は、デスクトップ同期インターフェース・コンポーネント１０８の開発者が割り当て可能であり、したがって同期マネージャ１１０によりハンドルし格納する。この識別データ・セグメントは、好ましくは、ある種のタイムスタンプ情報を含み、これを比較することにより、オブジェクトがこの識別データ・セグメントが参照ストア１１２内で最後に記録された時から変化したかどうか判定することができる。
【００４１】
複数の識別データ・セグメントを保持することに加え、同期マネージャ１１０はまた、オブジェクト・ストア６内に保持したオブジェクトに対応するオブジェクト識別子のリストを保持する。これら識別子は、新たなオブジェクトをモバイル・デバイス３上のオブジェクト・ストア６に追加するときには常に、同期マネージャ１１０に提供する。
【００４２】
完全な同期を達成するその正確なプロトコルの簡潔な説明は、本発明の文脈を理解するのに役に立つ。オブジェクトを同期させるため、同期マネージャ１１０は、最初に、特定のオブジェクトを参照する２つのハンドル・リストを作成する。用語“ハンドル”は、１つのオブジェクトを一意に識別しそしてこのオブジェクトにアクセスするのに使用できる番号またはその他の識別子を指す。一般に、１つのハンドルは、ある特定の時間またはセッションの間、例えば１つのオブジェクトが“開いている”時間の間、有効である。この同じオブジェクトを再び開くと、そのハンドルは異なったものとすることができる。
【００４３】
第１のハンドル・リストは、参照ストア１１２から得、そしてこれは、過去に同期させそして参照ストア１１２内において識別しているオブジェクトを表す。第２のハンドル・リストは、オブジェクト・ストア８上に格納されたオブジェクトを識別するリストである。これら２つのハンドル・リストは、互いに他方に対し比較して、同じオブジェクトが参照ストア１１２とオブジェクト・ストア８に格納されているかどうか判定する。
【００４４】
１つのオブジェクトが参照ストア１１２内で識別されているが、オブジェクト・ストア８内では識別されていない場合、この特定のオブジェクトは、最後の同期以後にデスクトップ４から削除されていることになる。他方、１つのオブジェクトがオブジェクト・ストア８内で識別され、参照ストア１１２内に現れていない場合、これは、最後の同期以後にデスクトップに追加されたことになる。いずれの場合にも、同期マネージャ１１０は、どのようにそのオブジェクトをハンドルするかを決定する。１つの好ましい実施形態においては、デスクトップ・オブジェクト・ストア８から削除したこれらオブジェクトはまた、参照ストア１１２から削除する。さらに、オブジェクト・ストア８に追加したそれらは、参照ストア１１２にも追加する。
【００４５】
同期マネージャ１１０は、次に、オブジェクト・ストア８内に格納のそれらオブジェクトの内のいずれかが、最後の同期以後にデスクトップで変更されたかどうか判定する。言い換えれば、同じオブジェクトに対応するハンドルが、オブジェクト・ストア８と参照ストア１１２の双方に現れているが、それらが、同一でない（例えば、タイムスタンプ、訂正番号、あるいは別の適当な識別セグメントが同じでない）場合、これは、オブジェクト・ストア８内のそのオブジェクトが、最後の同期以後に変更されていることを示す。
【００４６】
同期マネージャ１１０は、次に、モバイル・デバイス３上のオブジェクト・ストア６内に格納のいずれかのオブジェクトが、最後の同期以後に追加されたかあるいは変更されたかを判定する。ある１つのオブジェクトがオブジェクト・ストア６に追加されているかどうか判定するため、同期マネージャ１１０は、参照ストア１１２内のオブジェクト・リスト（これは、最後の同期時における全てのオブジェクトを反映）を、同期マネージャ１０２が保持しているオブジェクト・ストア６上のオブジェクト・リストと比較する。ある１つの既存のオブジェクトが変更されたかどうかを判定するため、同期マネージャ１０２は、オブジェクト・ストア６内に格納の各オブジェクトと関連した状態ビットを保持するように構成している。この状態ビットは、このビットに関連した特定のオブジェクトが最後の同期以後に変化したかどうかを反映している。もし変化している場合、同期マネージャ１０２は、デバイス３がデスクトップ・コンピュータ４に結合している場合に同期マネージャ１１０に対しその変化を通知するか、あるいは、単にその状態ビットをログしそしてデバイス３がデスクトップ・コンピュータ４に次に結合されたときに同期マネージャ１１０に対しそれを送る。
【００４７】
注意すべきであるが、これら手順のいずれも、同期マネージャ１１０あるいは同期マネージャ１０２が、その識別データ・セグメントのまたはこれら対応するオブジェクトの特定の性質またはフォーマットを了解していることを必要としない。むしろ、それら識別データ・セグメントの実際のコンテンツおよびそれらオブジェクトのコンテンツに依存する全てのアクションに対し、インターフェース・コンポーネント１００と１０８を求める。それらインターフェースがそれらの必要とする機能を実行できるようにする識別データ・セグメントのフォーマットを定めることは、それらインターフェースの設計者にかかっている。
【００４８】
一旦、変化、追加、削除を同期マネージャ１１０が判定すると、それらアイテムを同期させる。これを行うには、同期マネージャ１１０は、オブジェクト・ストア８またはオブジェクト・ストア６のいずれかにおいて変更されたオブジェクト・リストを形成し、そしてそれぞれの同期インターフェース・コンポーネントがその古くなったオブジェクトを更新するのを求める。この同じオブジェクトが、モバイル・デバイス３とデスクトップ・コンピュータ４の双方において変更されていると、衝突が生じる。同期マネージャ１１０は、この衝突を、ユーザに対しプロンプトするか、あるいはどのデバイスをユーザが残りに対し優先すること希望しているか、またどのインスタンスにおいてかを指図するセットアップ手順の間にユーザがエンターしたプロファイル情報を参照することにより、解決する。
【００４９】
ある１つのオブジェクトがデスクトップ・コンピュータ４においてあるいはモバイル・デバイス３内において作成された場合、このオブジェクトは、他方のデバイスと交換する必要がある。モバイル・デバイス３がデスクトップ・コンピュータ４から新たなオブジェクトを得る必要があるインスタンスの場合、同期マネージャ１１０は、“Set-Up”として知られたインターフェース・メソッドを呼び出し、これは、デスクトップ・コンピュータ４内のオブジェクト・ストア８から得てそしてモバイル・デバイス３内のオブジェクト・ストア６に転送するべきそのオブジェクトに対するハンドルを指定する。一旦、そのハンドルが得られると、“GetPacket”として知られたメソッドを繰り返し呼び出して、そのオブジェクトを表すデータストリームを検索し、そしてこれは、インターフェース・コンポーネント１０８によりフォーマットする。同期マネージャ１１０は、単に、このデータを１つのデータストリームとして扱い、これは、検索しそしてリンク９を介して同期マネージャ１０２に送り、そして最終的にはオブジェクト・ストア６に送る。この適当な同期インターフェース・コンポーネント１００は、このデータストリームをパーズすることにより、そのオブジェクトに対応するプロパティに関連したある種のプロパティ値を識別するようにする。これらプロパティは、次に、オブジェクト・ストア６に格納する。
【００５０】
最後に、同期マネージャ１１０は、同期させたオブジェクトあるいは交換したオブジェクトのいずれかと関連した識別データ・セグメントを更新し、そしてこの更新したデータ・セグメントを参照ストア１１２に格納する。
【００５１】
また、本発明は、電子メール・メッセージへのアタッチメントを同期させる能力も提供する。本発明は、電子メール・メッセージに関連したオブジェクト、並びにＰＩＭ５と７が保持する他のオブジェクトの同期を提供する。したがって、上記の同期プロトコルを使用することにより、電子メール・メッセージに関連したオブジェクトを、この同期プロセスの間に同期させる。同期マネージャ１１０は、新たな電子メール・メッセージを表すオブジェクト・ストア８内の任意の新たなオブジェクトを検出し、そしてこれらオブジェクトを、モバイル・デバイス３のユーザに気づかせるため、モバイル・デバイス３上のオブジェクト・ストア６に転送させる。
【００５２】
さらに、ユーザが、ＰＩＭ５内の適当な電子メール・メッセージング・アプリケーションを使ってモバイル・デバイス３上である電子メール・メッセージを作った場合、この電子メール・メッセージは、オブジェクト・ストア６内に新たなオブジェクトとして格納する。同期の間、この新たなオブジェクトは、デスクトップ・コンピュータ４とオブジェクト・ストア８とに転送する。好ましい実施形態においては、ＰＩＭ７内のある特定のアプリケーションが、この電子メール・メッセージをデスクトップ・コンピュータ４から適当な電子メール・メッセージング・トランスポートを使って直ちに送ること、を引き受ける。もちろん、この電子メール・メッセージは、直ちに送ることができない場合には、これを後での伝送のためオブジェクト・ストア８に格納する。
【００５３】
一旦、このメッセージを送ったなら、ＰＩＭ７は、好ましくは、そのメッセージを送ったことを、これを異なったロケーションに（例えば、e-mail ＰＩＭ内のアウトボックスから送出済みアイテム・ボックスに）置くことにより示すか、あるいはそうでない場合は、このメッセージが、このオブジェクトに関連した状態プロパティを更新すること等によって送出したことを示すことにより、このメッセージを送出したことを示す。このプロパティは、オプションとして、モバイル・デバイス３上のＰＩＭ５によりサポートするようにもできる。
【００５４】
電子メール・メッセージを表すこれらオブジェクトは、代表的には、この電子メール・メッセージにこれをデスクトップ・コンピュータ４が受けた時にアタッチメントが添付されていたかどうか示すプロパティを含んでいる。このため、同期の間、このプロパティは、モバイル・デバイス３にそして最終的にはオブジェクト・ストア６に、この電子メール・メッセージの実体を反映するその電子メール・メッセージ・オブジェクトと共に転送する。上述のように、このようなアタッチメントは、実質上任意の形態をとることができる。これらは、ドキュメントを表すテキスト・ファイルとしたり、あるいは図面、図形、テーブル、グラフ等を表す他のタイプのファイルとすることができる。したがって、モバイル・デバイス３のユーザにとって、同期の間に、全てのアタッチメントを自動的にオブジェクト・ストア６に転送させることが望ましくない場合があるが、それは、アタッチメントがモバイル・デバイス３の記憶容量を簡単に占有してしまうことがあるからである。
【００５５】
したがって、本発明は、モバイル・デバイス３のユーザが、ユーザ・プロファイル内のあるパラメータを選択して、全てのアタッチメントあるいはそのいくつかのみを自動的に送出するか、あるいはそのいずれも全く自動的に送出しないようにすることを可能にする。そのいずれも自動的に送出すべきでない場合、ユーザは、希望するアタッチメントのみを選択することができる。図５Ａは、本発明により使用するユーザ・インターフェース（ＵＩ）１３２の１つの実施形態を示す。図６は、本発明の１つの好ましい実施形態によるアタッチメントの転送を示すフロー図である。以下の説明は、図５、図５Ａおよび図６を参照して進める。
【００５６】
ここで、モバイル・デバイス３が、タッチ感応スクリーン８４およびスタイラス８６のようなオペレータ入力機構を含むことを想い出してもらいたい。ユーザが、電子メール・メッセージ（これらは保持し、そしてＰＩＭ５に表示させている）を眺めているとき、そのメール・メッセージに関連したオブジェクトは、代表的には、あるプロパティであって、任意のアタッチメントがその電子メール・メッセージと共に提供されたかどうかを示す視覚的指示を、ユーザに提供させるものを含んでいる。ユーザがスクリーン８４上のこの視覚的指示にタッチすると、ＰＩＭ５は、そのアタッチメント・プロパティを、オブジェクト・ストア６に格納したその電子メール・メッセージに関連したオブジェクト内において変化させ、そしてまた、ユーザに対し提供するその視覚的指示を変化させる。これは、ブロック１１８で示している。
【００５７】
図５Ａは、この視覚的指示を反映したユーザ・インターフェース（ＵＩ）１３２の１つの実施形態を示している。ＵＩ１３２は、好ましくは、スクリーン８４上に表示する。コマンド・バー１３４は、好ましくは、ユーザが活性化可能な複数のコマンドを含み、そしてこれらは、図５ＡではＡ−Ｅのラベルを付している。ある好ましい実施形態においては、これらコマンドは、add-fileコマンドを含み、これは、ユーザが、次の同期の間にダウンロードすべきファイルを追加できるようにする。ツール・バーはまた、好ましくは、open fileコマンドを含み、これは、ユーザが、その時ＵＩ１３２が表示している任意のファイルを開くことができるようにする。コマンド・バー１３４はまた、好ましくは、copy fileコマンドを含み、これは、ユーザが、そのメール・ストアから新たなロケーションにコピーすべきネームおよびファイルを指定できるようにする。コマンド・バー１３４はまた、好ましくは、move fileコマンドを含み、これは、ロケーションまたはネームとファイルを指定できるようにし、そしてこれは、指定したときには、そのメール・ストアからその新たなロケーションへ移動させる。このとき、確認ダイアログを、その移動タスクを完了する前に表示するのが好ましい。コマンド・バー１３４はまた、好ましくは、deleteコマンドを含み、これは、ユーザが、削除すべきファイルを選択できるようにする。その各々の場合、本発明の１つの好ましい実施形態によれば、ユーザは、それらコマンドの内の任意のものに対し、スクリーン８４をスタイラス８６で単に触れることにより選択する。
【００５８】
アタッチメント・インジケータ・フィールド１３６は、ファイル・ネーム・フィールド１３８の下に表示された任意の電子メール・メッセージに対するアタッチメントの存在を示す。好ましくは、アタッチメント・フィールド１３６に表示したアイテムは、そのアタッチメントが次の同期時にダウンロードするようスケジュールされているかどうか指示する。
【００５９】
ファイル・ネーム・フィールド１３８は、好ましくは、少なくとも２つの異なったフォーマットでファイル・ネームを表示する。イタリックのような第１のフォーマットで表示するとき、これは、その特定のメッセージに対するアタッチメントが、モバイル・デバイス３に対しローカルでないことを示す。例えばブロック・テキストで表示したときには、これは、そのアタッチメントがダウンロードされたこと、したがってモバイル・デバイス３上に常駐していることを示す。
【００６０】
サイズ・フィールド１４０は、アタッチメントのサイズを示す。このアタッチメントがモバイル・デバイス３上に常駐する場合、このサイズ・フィールドは、そのドキュメントのサイズを示す。アタッチメントがモバイル・デバイス３上に常駐していない場合、このサイズ・フィールドは、現在のメモリが全くこのアタッチメントにより消費されていないことを示し、そしてまた、そのアタッチメントのサイズを示す。
【００６１】
あるアタッチメントがダウンロードするように選択されていないが、モバイル・デバイス３のユーザがそのアタッチメントを次の同期時にダウンロードすることを希望している場合には、ユーザは、単に、スクリーン８４に（そのスクリーンの指定した部分にダブル・タップする）スタイラス８６でそのファイル・ネーム・フィールド１３８上あるいはアタッチメント・フィールド１３６上に触れるかする。これは、アタッチメント・インジケータ・フィールド１３６内に表示したアタッチメント・インジケータの出現フォーマットを変化させて、現在そのアタッチメントが同期の間においてダウンロードするために選択されていることを示す。したがって、ＵＩ１３２は、非常に効率的な機構を提供し、これにより、ユーザは、次の同期の間にダウンロードすべきある一定のアタッチメントを動的に選択することができる。
【００６２】
次の同期の間、同期マネージャ１１０は、上述の同期プロトコルにしたがい、特定の電子メール・メッセージに関連した、ユーザが変更を行ったところのオブジェクトの変化を検出する。この変化は、ユーザがスクリーン８４に触れた時にそのアタッチメント・プロパティをユーザが変更したことを示し、しかもＰＩＭ５がその変更されたオブジェクトをオブジェクト・ストア６に格納したときに新たなタイムスタンプあるいは訂正番号がそのオブジェクトに関連させたこと、に起因している。これは、同期マネージャ１０２に、そのオブジェクトに関連した状態ビットをセットさせ、そしてその状態ビットを同期の間において同期マネージャ１１０に通信させる。これは、ブロック１２０に示している。
【００６３】
次に、同期マネージャ１１０は、コンポーネント１０８内の特定のインターフェース・メソッドを呼び出して、ユーザがそのアタッチメント・プロパティを変更したこの特定のオブジェクトを同期させる。しかし、オブジェクト・ストア８内のそのオブジェクトを単に更新するのではなく、同期インターフェース・コンポーネント１０８は、変更されているその特定のオブジェクトが、あるアタッチメント・プロパティを有する電子メール・メッセージであるかどうか判定する。もしそうである場合、同期インターフェース・コンポーネント１０８は、それが、アタッチメントを要求するよう変更されたアタッチメント・プロパティであるかどうか判定する。これは、モバイル・デバイス３から受けたデータストリームを、そのオブジェクトに関連した種々のプロパティ値にパーズすることにより行う。もし、それが、変更したアタッチメント・プロパティでない場合、このときには、同期インターフェース・コンポーネント１０８は、単に、通常の同期プロトコルを続行し、そしてオブジェクト・ストア８内のそのオブジェクトを更新する。これは、ブロック１２２と１２４に示している。
【００６４】
しかし、もし同期インターフェース・コンポーネント１０８が、それが、ユーザが変更したアタッチメント・プロパティであると判定した場合、同期インターフェース・コンポーネント１０８は、オプションとして、デスクトップ・コンピュータ４内のオペレーティング・システムが保持するレジストリをチェックして、モバイル・デバイス３の特定のユーザが、ユーザ・プロファイル情報においてアタッチメントの送出において取るべき任意の特別なアクションを指示しているかどうか判定する。例えば、デスクトップ４における初期化手順の間において、ユーザは、プロファイル・パラメータをセットして、これで、特定のファイル・コンバータを呼び出して、モバイル・デバイス３に転送すべき任意のアタッチメントを変換して、そのデバイスが理解可能なフォーマットにすることを指示するようにすることができる。これは、ブロック１２６で示している。
【００６５】
アタッチメントをモバイル・デバイス３に転送すべきことを判定した後、そしてオプションとしてモバイル・デバイス３のそのユーザに関連したプロファイル情報をチェックした後、同期インターフェース・コンポーネント１０８は、ＲＡＰＩコンポーネント１１４に関連した必要なインターフェース・メソッドを呼び出して、そのアタッチメントをＲＡＰＩサーバ１１６にそして最終的にはオブジェクト・ストア６に転送する。これは、ブロック１２８で示している。再び、ＲＡＰＩコンポーネント１１４およびＲＡＰＩサーバ１１６のこの特定のインターフェース、メソッドおよび相互作用は、好ましくは、マイクロソフト社により入手可能な周知の公に文書化された仕様にしたがって実施する。
【００６６】
この転送を完了した後、同期マネージャ１１０は、参照ストア１１２を更新して、ユーザが変更した電子メール・メッセージを表すオブジェクトに関連した適当な識別情報を含むようにする。これは、ブロック１３０で示している。
【００６７】
また、別の問題は、モバイル・デバイス３のインボックス内に格納された電子メール・メッセージを、デスクトップ・コンピュータ４のインボックス内に格納されたものと同期させるときに存在する。例えば、モバイル・デバイス３は、潜在的に、２以上のデスクトップ・コンピュータ４に結合可能とすることができる。もしモバイル・デバイス３のユーザが、例えば、家庭にデスクトップ・コンピュータ、そして職場にデスクトップ・コンピュータを有する場合、モバイル・デバイス３は、おそらく、それらコンピュータの双方に定期的に結合されることになる。それらデスクトップ・コンピュータの双方のインボックスからのオブジェクトは、自動的に、モバイル・デバイス３のインボックス内のオブジェクトと同期させ、その結果、最終的にはそれら双方のデスクトップ・コンピュータとモバイル・デバイス３とは全て、それらデスクトップ・コンピュータ両方のインボックス内のメッセージ全てを有することになる。言い換えれば、モバイル・デバイス３のユーザは、このデバイスを家庭のデスクトップ・コンピュータに接続した場合、家庭のデスクトップ・コンピュータは、それらのインボックスを同期させ、それにより、モバイル・デバイス３のインボックスが、家庭のデスクトップ・コンピュータのインボックス内の全てのオブジェクトを含むようにする。次に、ユーザがモバイル・デバイス３を職場のデスクトップ・コンピュータに接続すると、職場のデスクトップ・コンピュータは、多くのオブジェクトがオブジェクト・ストア６に追加されたこと（家庭のデスクトップ・コンピュータのインボックス内の電子メール・メッセージの全て）を認識し、そして、これらオブジェクトを職場のデスクトップ・コンピュータのインボックスに追加することになる。したがって、家庭のコンピュータのインボックス内の全ての電子メール・メッセージは、職場のデスクトップ・コンピュータにコピーされることになる。これと同じことが、職場で受けた電子メール・メッセージについても当てはまる（すなわち、それらは家庭のデスクトップ・コンピュータにコピーされることになる）。同様に、モバイル・デバイス３は、両方のデスクトップ・コンピュータの各インボックス内の全てのメッセージを含むことになる。したがって、本発明は、電子メール・メッセージの望まない複製および拡散を防止するため、多くの個性化したフィルタリング・オプションを提供する。
【００６８】
ここで、同期マネージャ１１０が、モバイル・デバイス３上のオブジェクト・ストア６に追加された新たなオブジェクトを識別するリストを発生するように構成されていることを想い出してもらいたい。１つの好ましい実施形態においては、同期マネージャ１１０はまた、それら新たなオブジェクトがモバイル・デバイス３のインボックス内に含まれているかどうか判定するようにも構成されている。もし新たなオブジェクトが含まれている場合、これは、モバイル・デバイス３が、そのインボックス内にある電子メール・メッセージを有し、それに対応するメール・メッセージがデスクトップ・コンピュータ４のインボックス内にないことを意味する（その理由は、モバイル・デバイス３のインボックス内のそのメッセージに関連したオブジェクトが、デスクトップ・コンピュータ４のオブジェクト・ストア８内のオブジェクトに対応していないからである）。もしそうである場合、同期マネージャ１１０は、単にそのオブジェクトを同期することはせず、したがって、モバイル・デバイス３のインボックスからそのメール・メッセージをデスクトップ・コンピュータ４にコピーすることはしない。
【００６９】
別の好ましい実施形態においては、モバイル・デバイス３のインボックスからのメール・メッセージの同期は、その電子メール・メッセージを受信するのに使用した特定のトランスポートに基づいてフィルタする。言い換えれば、モバイル・デバイス３には、本発明の１つの形態に従い、複数のトランスポート１３２，１３４，１３６を設けている。これらトランスポートは、例えば、ＰＯＰ３トランスポート、Ｓｋｙｔｅｌページング・トランスポート、あるいは任意のその他の市販されたトランスポートを含むことができる。このようなトランスポートは、代表的には、ＰＩＭ５内の異なったアプリケーションがサポートする。
【００７０】
このようなトランスポートを通して受信した電子メール・メッセージに関連の電子メール・オブジェクトは、代表的には、あるプロパティあるいはタグであって、その電子メール・メッセージを受信した特定のトランスポートを特に識別するものを含む。１つの好ましい実施形態においては、同期マネージャ１１０は、モバイル・デバイス３上の新たなオブジェクトのリストを作成するだけでなく、それらオブジェクトを調べることによって、それらが電子メール・メッセージであるかどうか判定し、そして電子メール・メッセージである場合には、どのトランスポートがそれらを受信したかを判定するように構成している。もしこのトランスポートが、デスクトップ・コンピュータ４が使用中のトランスポート（あるいは、デスクトップ・コンピュータ４のオペレーティング・システムが保持するレジストリ内の格納のプロファイル情報におけるユーザが指定の任意のその他のトランスポート組）に対応していない場合、同期マネージャ１１０は、単に、その特定のオブジェクトを同期させることはしない。したがって、モバイル・デバイス３のユーザが、１つのタイプのトランスポートを通して個人的な電子メール伝送を受け、そして別のタイプのトランスポートを通してビジネスのあるいは職業上の電子メール・メッセージを受ける場合、ある特定のタイプのトランスポートを使って、それらメッセージの同期をフィルタすることができる。もちろん、このフィルタリング機能は、同期マネージャ１１０ではなく、同期インターフェース・コンポーネント１０８によって実行することもできる。
【００７１】
上記のフィルタリング技術を用いるときでも、ユーザは、任意の電子メール・メッセージをデスクトップ・コンピュータ４からモバイル・デバイス３に手動で転送することを採択することができる。デスクトップ・コンピュータ４上には単に、適当なユーザ・インターフェースを設け、これにより、ユーザは、デスクトップ・コンピュータ４のインボックス内あるいはモバイル・デバイス３のインボックス内の、ユーザが転送することを希望しているそれら特定の電子メール・メッセージを識別できるようにする。この識別をしたときには、それらオブジェクトは、通常の同期プロトコルを使用して転送し同期させる。１つの例として、１つのそのようなユーザ・インターフェースは、図５Ａに示したものであり、別の適当なインターフェースは、“ドラッグ・アンド・ドロップ”インターフェースと呼ぶものである。
【００７２】
さらに、別の問題は、モバイル・デバイス３から電子メール・メッセージを作成しそして送出する際に提示される。電子メール・メッセージを送出するためには、代表的には、受取人のアドレスを完全に限定（qualify）しなければならならず、さもなければ、そのメッセージを送出するメール・サーバは、そのアドレスを不完全にしか知らされず、したがってそのメッセージを配信することができない。しかし、電子メール・アプリケーションのユーザのとっては、彼らがかなりの数の電子メール・メッセージを送る特定の各群（party）の馴染みのあるネームを識別することが一般的である。この馴染みのあるネームは、完全に限定されたアドレスにタグ付けし、そしてその完全に限定されたアドレスを電子メール・システムがそのメッセージのアドレッシングする際に使用する。
【００７３】
しかし、大きな企業あるいは組織内で働くデスクトップ・コンピュータをもった個人に関しては、その企業あるいは組織内の全ての人の完全に限定された電子メール・アドレスを含んだ完全なアドレス・ブックを有することが一般的である。これは、潜在的に、メモリの大きな量を消費することがある。このようなボリュームのあるアドレス・ブックをモバイル・デバイス３上に保持することは、望ましくない。多くのユーザはまた、彼らがかなりの数の電子メール・メッセージを送出するある一定の個人のフルネームと完全に限定されたアドレスとを含む大幅に縮小したアドレス・ブックあるいは連絡ディレクトリ（contact directory）を保持することもある。このような縮小したディレクトリは、モバイル・デバイス３のオブジェクト・ストア６に格納されるのが普通である。
【００７４】
完全に限定されたアドレスがその縮小したディレクトリ内にない場合、同期インターフェース・コンポーネント１０８は、ＭＡＰＩメソッドを使って、そのアドレスを解決（resolve）する。言い換えれば、ＭＡＰＩは、あるフィーチャであって、種々のディレクトリ内のネーム・フィールドを所定の順序でサーチすることにより馴染みのあるネームに基づいてある電子メール・メッセージを見つけることができるようなフィーチャをサポートしている。このため、送出すべき電子メール伝送を表すあるオブジェクトを、デスクトップ・コンピュータ４に転送すべきとき、あたかもユーザがそのメッセージを作成しそしてそのメッセージをデスクトップ・コンピュータ４から送出したかのように、その同じネーム解決階層をデスクトップ・コンピュータ４が使って、そのネームを解決しかつその完全に限定された電子メール・アドレスを得る際に使用する。これは、全体でかつ潜在的にボリュームのあるものとなるアドレス・ブックをモバイル・デバイス３に格納する必要性をかなり軽減する。したがって、これは、モバイル・デバイス３の必要な記憶容量を低くする。
【００７５】
以上、本発明について好ましい実施形態を参照して説明したが、当業者であれば分かるように、本発明の要旨および範囲から逸脱せずに形態および細部において種々の変更を行うことができる。
【図面の簡単な説明】
【図１】  本発明の基本的な環境を示すブロック図。
【図２】  本発明による、モバイル・デバイスと共に使用する従来のデスクトップ・コンピュータの１つの実施形態のブロック図。
【図３】  本発明による、モバイル・デバイスの１つの実施形態を示す簡単化した模式図。
【図４】  図３に示したモバイル・デバイスの１つの実施形態の簡単化したブロック図。
【図５】  図５は、図２に示したデスクトップ・コンピュータと図３および図４のモバイル・デバイスの種々の部分の１つの実施形態のアーキテクチャ的ブロック図であって、本発明による、デスクトップ・コンピュータとモバイル・デバイス上の各オブジェクト・ストア内に格納した情報の同期を示し、図５Ａは、本発明によるユーザ・インターフェースの１つの実施形態を示す。
【図６】  本発明の１つの実施形態によるアタッチメントの転送を示すフロー図。
【図１】
0004246382.tif 000002
【図２】
0004246382.tif 000003
【図３】
0004246382.tif 000004
【図４】
0004246382.tif 000005
【図５】
0004246382.tif 000006
0004246382.tif 000007
【図６】
0004246382.tif 000008