(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイス上で実行される、電子メール対話を同期させるための方法であって、
ウェブサービスにおいて、クライアントアプリケーションから対話同期化要求を受け取るステップであって、前記対話同期化要求は同期させるフォルダ識別子のリスト、同期させるタイムウィンドウ、返送する変更の数、および同期状態ブロブの組のうち少なくとも１つを含むステップと、
変更された対話のリストを確定するために、フォルダの対話ビュー上に内部アプリケーションプログラミングインタフェース（ＡＰＩ）を呼び出すステップと、
変更された対話ＩＤを含む応答を前記クライアントアプリケーションに送信するステップと、
変更された対話それぞれについて、対話状態と共に前記クライアントアプリケーションからの要求を受け取るステップと、
前記受け取った対話状態に基づいて、変更された対話それぞれの対話データをフォルダの前記対話ビューと比較するステップと、
前記変更された対話中のアイテムプロパティとメッセージ本文とを前記クライアントアプリケーションに返送するステップと、
追加された対話と、変更された対話と、および最後の受信時間が前記同期させるタイムウィンドウを過ぎた、削除された対話とを通して前記クライアントアプリケーションを繰り返させるステップを含み、
前記追加された対話と、変更された対話と、および最後の受信時間が前記同期させるタイムウィンドウを過ぎた、削除された対話とを通して前記クライアントアプリケーションを繰り返させるステップは、
メッセージ識別子（ＭＩＤ）を使ってローカルデータベース中の削除された対話を見つけるステップと、
前記削除された対話を含むフォルダについてのフォルダ統計があればそれを除去するステップと、
前記削除された対話についての対話ＩＤを、前記ウェブサービスへの要求中の対話リストに追加するステップと、
を含む方法。
【請求項２】
前記クライアントアプリケーションは、ウェブベース電子メールアプリケーションであることを特徴とする、請求項１に記載の方法。
【請求項３】
前記追加された対話と、変更された対話と、および最後の受信時間が前記同期させるタイムウィンドウを過ぎた、削除された対話とを通して前記クライアントアプリケーションを繰り返させるステップは、
受け取った対話ＩＤを使って、ローカルデータベース中の追加された対話と変更された対話とのうち１つを見つけるステップと、
全体的統計を更新するステップと、
フォルダ統計を更新するステップと、
送信済みフォルダ識別子（ＦＩＤ）のリスト内に存在しないフォルダについてのフォルダ統計があればそれを除去するステップと、
前記ウェブサービスへの要求に含むように、対話リストに前記対話ＩＤを追加するステップと、
をさらに含む、請求項１又は２に記載の方法。
【請求項４】
前記クライアントアプリケーションに送信する応答に、更新された同期状態ブロブ、さらなる変更があるかどうかを示すフラグ、前記要求されたフォルダの少なくとも１つに存在する、変更された対話および追加された対話、ならびに削除された対話の組のうち少なくとも１つを含ませるステップをさらに含む、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記変更された対話および追加された対話が、対話ＩＤ、メッセージ識別子（ＭＩＤ）、フォルダのいくつかについての総統計、総全体統計、のうち少なくとも１つを含む、請求項４に記載の方法。
【請求項６】
前記削除された対話が、削除された対話についてのメッセージ識別子（ＭＩＤ）、および、削除したメッセージを含むフォルダのフォルダ識別子（ＦＩＤ）を含む、請求項４又は５に記載の方法。
【請求項７】
前記同期状態ブロブを、同期させる各フォルダの同期状態に分割するステップと、
現時間を最後の受信時間（ＬＴＲ）として記憶するステップと、
同期させる各フォルダについて、
最後の受信時間（ＬＴＲ）が要求された同期させるタイムウィンドウを過ぎたか否かを判断し、過ぎている場合には次のフォルダにスキップし、そうではない場合には、最後の受信時間（ＬＴＲ）より少ないタイムウィンドウを有する対話を検索するステップと、
最後の受信時間（ＬＴＲ）が要求された同期させるタイムウィンドウより大きくなった時に、同期状態において検出された最小の最後の受信時間（ＬＴＲ）を記憶するステップと、
を含む請求項４〜６のいずれか一項に記載の方法。
【請求項８】
フォルダの同期状態が存在しない場合には、内部ＡＰＩから同期状態を受信し、現在の時刻をフォルダの最後の受信時間（ＬＴＲ）として記憶し、そうではない場合には、要求されたフォルダにおいて内部ＡＰＩを呼ぶことによって変更を列挙するステップと、
フォルダの最後の受信時間（ＬＴＲ）が、要求された同期させるタイムウィンドウより前である場合には、変更を無視するステップと、
追加された又は変更された対話については、対話ＩＤ、メッセージ識別子（ＭＩＤ）、フォルダ統計、及び、全体的統計を受け取るステップと、
削除された対話については、それぞれの削除された対話についての対話オブジェクトのメッセージ識別子（ＭＩＤ）を受け取るステップと、
を含む請求項７に記載の方法。
【請求項９】
クライアントアプリケーションから対話同期化要求が、それぞれの対話について、対話ＩＤ、最後の対話の同期の状態、および、対話中の各メッセージについてのアイテムＩＤ、変更キー、読み出しフラグ変更キーを含むリストのすくなくともいずれかを含むことを特徴とする、請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
請求項１〜９のいずれか一項に記載の方法を実行するためのプログラム。
【請求項１１】
請求項１〜９のいずれか一項に記載の方法を実行するためのプログラムを記録した記録媒体。
【請求項１２】
電子メール対話を同期させるためのシステムであって、
同期状態ブロブ、同期させるフォルダのリスト、および同期化のためのタイムウィンドウの組のうち少なくとも１つと共に対話同期化要求を送信するステップと、
対話ＩＤのリストを受け取るステップと、
受け取った対話ＩＤのそれぞれについて、最後の対話状態を含む要求を送信するステップと、
を実行するように構成された、ウェブベース電子メールアプリケーションを実行する第１のサーバと、
変更された対話のリストを確定するためにウェブサービスデータストアの変更追跡モジュールを呼び出すステップと、
前記対話ＩＤのリストを前記ウェブベース電子メールアプリケーションに送信するステップと、
前記ウェブサービスデータストアにおけるフォルダの対話ビューからアイテムリストを読み出すステップと、
受け取った前記最後の対話状態に基づいてアイテムデータを比較するステップと、
変更が確定されたアイテムプロパティとメッセージ本文とを前記ウェブベース電子メールアプリケーションに返送するステップと、
を実行するように構成されたウェブサービスを実行する第２のサーバと、
を含むシステムにおいて、
前記第２のサーバは、
追加された対話と、変更された対話と、および最後の受信時間が前記同期させるタイムウィンドウを過ぎた、削除された対話とを通して前記ウェブベース電子メールアプリケーションを繰り返させるステップを更に実行し、
前記追加された対話と、変更された対話と、および最後の受信時間が前記同期させるタイムウィンドウを過ぎた、削除された対話とを通して前記ウェブベース電子メールアプリケーションを繰り返させるステップは、
メッセージ識別子（ＭＩＤ）を使ってローカルデータベース中の削除された対話を見つけるステップと、
前記削除された対話を含むフォルダについてのフォルダ統計があればそれを除去するステップと、
前記削除された対話についての対話ＩＤを、前記ウェブサービスへの要求中の対話リストに追加するステップと、
を含む、システム。
【請求項１３】
前記第２のサーバはさらに、各対話に関連付けられたフォルダ特有情報と全体的情報とを、集合データと共に前記ウェブベース電子メールアプリケーションに返送するように構成された、請求項１２に記載のシステム。
【請求項１４】
前記各対話に関連付けられたフォルダ特有情報と全体的情報は、変更されたフォルダまたは全体についての、既読／未読／フラグ付き／返信済み電子メールの少なくともいずれかについての情報を含むことを特徴とする、請求項１３に記載のシステム。
【請求項１５】
前記集合データは、変更されたメッセージについての、主題、受取人、フラグ、重要、カテゴリーの少なくともいずれかを含むことを特徴とする、請求項１３又は１４に記載のシステム。
【請求項１６】
前記第２のサーバはさらに、内部ＡＰＩとメッセージングＡＰＩ（ＭＡＰＩ）とを通して前記変更追跡モジュールを呼び出すことにより、前記ウェブサービスデータストアに照会するように構成された、請求項１３〜１５のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブベース電子メールシステムにおける対話構造の同期化に関する。
【背景技術】
【０００２】
[0001]電子メールは、１人の作成者から１人または複数の受取人へメッセージを交換する方法である。最近の電子メールは、ストアアンドフォワードモデルに基づいて、インターネットやその他のコンピュータネットワークを通じて動作する。電子メールサーバは、メッセージを受け付け、転送し、引渡し、格納する。ユーザ同士もユーザのコンピュータ同士も、同時にオンラインである必要はなく、メッセージを送信または受け取る必要があるときにのみ、一般的には電子メールサーバにごく簡単に接続する必要があるだけである。電子メールのメッセージには、テキスト、図表、音声、映像や同様の内容が含まれ得る。
【０００３】
[0002]その他のネットワーク化された通信の形態も数多く出てきているが、電子メールはいまだにビジネスユーザ間、個人ユーザ間において際立った形態である。組織という環境においては、ユーザは、プロジェクト、討議トピック、テーマなど、多くのトピックに関して他の様々なユーザとメールを交換するであろう。典型的な電子メールアプリケーションにおいては、ユーザのメールボックスは、通常、いくつかのフォルダに分けられている。それらのフォルダにはもともと備えられたフォルダもあり、ユーザが作成できるフォルダもある。従来、ストレージが限られた電子メールクライアントアプリケーションは、それらのフォルダのサブセット中に記憶された電子メールと、それらのフォルダの電子メールのいくつかのみを同期させる。（受信時間に基づいて）。しかし、共通の属性（例えば、主題、スレッドトピック、参加者など）によって識別された電子メールのグループ分けである「対話（conversation）」は、異なるフォルダにまたがっている可能性がある。例えば、ある対話に属するメールのうちあるものは受信メールフォルダ中にあり、あるものは送信メールフォルダ中にあり、またあるものはユーザ作成フォルダ中にある。したがって、従来の電子メールクライアントアプリケーションは、対話について最新のステータス情報を維持することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ウェブベース電子メールシステムにおける対話構造の同期化を提供する。
【課題を解決するための手段】
【０００５】
[0003]この概要は、以下の「発明を実施するための形態」においてさらに説明する概念のうち抜粋したものを簡単な形で紹介するために提供する。この概要は、請求項に記載された主題の主要な特徴または不可欠の特徴を排他的に特定することを意図したものではなく、また、請求項に記載された主題の範囲を確定する助けとなるものとして意図したものでもない。
【０００６】
[0004]実施形態は、ウェブベース電子メールシステムにおいて対話および対話プロパティの同期化を可能にすることに向けたものである。いくつかの実施形態によれば、フォルダ特有の対話情報および全体的な対話情報を提供する新たなクライアントに、対話を列挙することができる。クライアントは、初期対話情報を受け取った後、対話状態を維持することができる。この対話状態は、対話同期コマンドを通してウェブサービスストアからクライアントを更新する際に使用することができる。
【０００７】
[0005]上記およびその他の特徴および利点は、以下の詳細な説明を読み、関連図面を検討することにより明らかになるであろう。上述の全体的な説明および以下の詳細な説明は、ともに説明のためのものであり、請求項に記載された態様を制約するものではないことを理解されたい。
【図面の簡単な説明】
【０００８】
【図１】[0006]いくつかの実施形態による、ウェブベース電子メールにおける対話構造を同期させるための例示的ネットワーク化システムを説明する図である。
【図２】[0007]実施形態によるシステムの主要構成要素を説明する図である。
【図３】[0008]対話構造を同期させるためのシステムにおける例示的ストアテーブルおよびインデックスを説明する図である。
【図４】[0009]実施形態によるシステムの主要構成要素間の例示的相互作用を説明する動作図である。
【図５】[0010]実施形態によるシステムを実装することができるネットワーク化環境の図である。
【図６】[0011]実施形態を実装することができる例示的コンピューティングオペレーティング環境のブロック図である。
【図７】[0012]実施形態によるウェブベース電子メールシステムにおいて対話構造を同期させるプロセスの論理流れ図を示す。
【発明を実施するための形態】
【０００９】
[0013]上記に簡単に説明したように、フォルダ特有対話情報および全体的対話情報は、対話状態を利用しているウェブベースメールシステム中の電子メールクライアントアプリケーションを用いて同期させることができる。以下の詳細な説明では、本明細書の一部をなし、具体的な実施形態または実施例を説明するために示す添付図面を参照していく。態様には、組み合わせてもよいものもあるし、活用できるものもある。また、本開示の趣旨または範囲を逸脱しない範囲で構造上の変更を行うことができる。したがって、以下の詳細な説明は限定する意味で捉えるべきものではなく、本発明の範囲は、付随する請求項およびそれらと同等のものによって定義される。
【００１０】
[0014]以下の詳細な説明では、本明細書の一部をなし、具体的な実施形態また
は実施例を説明するために示す添付図面を参照していく。態様には、組み合わせてもよいものもあるし、活用できるものもある。また、本開示の趣旨または範囲を逸脱しない範囲で構造上の変更を行うことができる。したがって、以下の詳細な説明は限定する意味で捉えるべきものではなく、本発明の範囲は、付随する請求項およびそれらと均等なものによって定義される。
【００１１】
[0015]実施形態を、コンピューティングデバイス上のオペレーティングシステム上で走るアプリケーションプログラムと併せて実行されるプログラムモジュールという一般的な状況で説明するが、当業者は、他のプログラムモジュールと組み合わせても態様を実装できることを認識するであろう。
【００１２】
[0016]一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスクを実施したり抽象データ型を実装したりするその他のタイプの構造を含み得る。さらに、当業者は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルの一般消費者向け電気製品、ミニコンピュータ、メインフレームコンピュータ、および同様のコンピューティングデバイスを含む、その他のコンピュータシステム構成でも実施形態を実施できることを理解するであろう。実施形態はまた、通信ネットワークを通じてリンクされたリモート処理装置によってタスクが実行される、分散コンピューティング環境においても実施できる。分散コンピューティング環境では、ローカルとリモート両方のメモリ記憶装置にプログラムモジュールを設けることができる。
【００１３】
[0017]実施形態は、コンピュータによって実行されるプロセス（方法）やコンピューティングシステムとして、またはコンピュータプログラム製品もしくはコンピュータ読み取り可能媒体などの製品として実装することができる。コンピュータプログラム製品は、コンピュータシステムが読み取り可能であって、コンピュータまたはコンピューティングシステムに例示的プロセスを実行させるための指示を含むコンピュータプログラムを符号化するコンピュータ記憶媒体であってよい。コンピュータ読み取り可能記憶媒体は、非一時的コンピュータ読み取り可能メモリデバイスである。コンピュータ読み取り可能記憶媒体は、例えば、１つまたは複数の揮発性コンピュータメモリ、不揮発性メモリ、ハードドライブ、フラッシュドライブ、フロッピー（登録商標）ディスクまたはコンパクトディスク、および同様の媒体を介して実装することができる。
【００１４】
[0018]本明細書を通して、「プラットホーム」という用語は、ウェブベース電子メールサービスを提供するためのソフトウェアコンポーネントとハードウェアコンポーネントの組み合わせであり得る。プラットホームの例として、複数のサーバにわたって実行されるホスト型サービス、単一のコンピューティングデバイス上で実行されるアプリケーション、および同様のシステムが挙げられるが、それらに限定されるわけではない。「サーバ」という用語は、一般に、典型的にはネットワーク化環境において１つまたは複数のソフトウェアプログラムを実行するコンピューティングデバイスを指す。しかし、サーバは、ネットワーク上のサーバとしてみなされる、１つまたは複数のコンピューティングデバイス上で実行されるバーチャルサーバ（ソフトウェアプログラム）として実装することもできる。これらの技術および例示的オペレーションについてのさらなる詳細を以下に記載する。
【００１５】
[0019]図１を見ると、１００は、いくつかの実施形態による、ウェブベース電子メールにおける対話構造を同期させるための例示的ネットワーク化システムを説明する図である。１００に示す例示的構成要素は、説明を目的とするものである。実施形態は、様々なコンピューティングデバイスおよびシステムを利用している様々なローカルコンピューティング環境、ネットワーク化コンピューティング環境、および同様のコンピューティング環境において実装することができる。
【００１６】
[0020]いくつかの実施形態によれば、電子メール交換を容易にするウェブサービス１０２の一部としてのウェブサービスコマンドは、クライアント（例えば、１０６、１０８、１１０）が、指定されたフォルダおよびタイムウィンドウ内に少なくとも１つの電子メールを有する対話を同期することを可能にする。ウェブサービス１０２は、電子メールではなく対話に対する変更を報告し、サービスに新たに参加したクライアントがすべての対話データを受け取るように、既存の対話を効率的に列挙することができる。既読／未読／フラグ付き／返信済み電子メール（特有フォルダまたは全体における）の数など、各対話についてのフォルダ特有情報および全体的情報を報告することができる。ウェブサービス１０２はまた、クライアントが同期化セッションを制御することを可能にする同期状態を返信することができる。１００に示すように、ウェブサービス１０２およびクライアント１０６〜１１０は、１つまたは複数のネットワーク１１２を介して通信することができ、また、電子メール（および対話）関連のデータは、１つまたは複数のデータストア１０４に記憶することができる。
【００１７】
[0021]実施形態によるウェブサービスは、サーバデータベース中の対話オブジェクトに対する変更を追跡して、変更された対話がある場合はその構造をクライアントに報告することができる。これには、主題、受取人、フラグ、重要、カテゴリーなどのような集合データが含まれ得る。報告されるデータにはまた、対話の一部である電子メール（例えば、「ｉｔｅｍＩｄ」で識別される電子メール）のリストを含めることができる。
【００１８】
[0022]フォルダの既存の内容を効率的に投入する（populate）ために、クライアントが初めて接続したときに、各要求について最後に同期された対話が求められる、クエリメカニズムが使用できる。このアプローチは、同期状態を小さく維持し、サーバにとって効率的なオペレーションである。
【００１９】
[0023]図２は、実施形態によるシステムの主要構成要素を説明する図である。電子メールサービス内の対話の同期化を可能にするシステムは、任意の数の構成要素を含むことができる。２００に示す構成要素は例示の目的のためだけのものであり、実施形態を限定するものではない。
【００２０】
[0024]実施形態によるシステム内の例示的コンポーネントは、ウェブサービス２２４（例えば、ワシントン州レッドモンドのマイクロソフトコーポレーションによるＥｘｃｈａｎｇｅ（登録商標））と通信するウェブベース電子メールアプリケーション２２２、および同期化サービス２２６を含む。ウェブサービス２２４および同期化サービス２２６は、内部アプリケーションプログラミングインタフェース（ＡＰＩ）２２８内の同期化プロバイダ２３０と、また、メッセージングＡＰＩ（ＭＡＰＩ）２３２を通して、電子メール、対話、関連メタデータを記憶しているデータストア２３６の増分変更同期化（ＩＣＳ）２３４と相互作用することができる。
【００２１】
[0025]同期化サービス２２６の例として、ワシントン州レッドモンドのマイクロソフトコーポレーションによるＥｘｃｈａｎｇｅ  ＡｃｔｉｖｅＳｙｎｃ（登録商標）（ＥＡＳ）が挙げられる。Ｅｘｃｈａｎｇｅ  ＡｃｔｉｖｅＳｙｎｃ（登録商標）（ＥＡＳ）は、メッセージングサーバからモバイルデバイスへの電子メール、コンタクト、カレンダ、タスク、およびノートの同期化のために設計されたハイパーテキスト転送プロトコル（ＨＴＴＰ）によって通信する、ＸＭＬベースプロトコルである。このプロトコルはまた、モバイルデバイス管理およびポリシー制御も提供することができる。同期化サービス２２６は、メッセージＩＤおよび電子メールの主題を含むいくつかの属性、同期しているノート（notes synchronizing）、コンタクトの利用可能性（フリー／ビジーステータス）を探索する機能（そのカレンダから）、一般的に使用されるコンタクトの名称が共有されているニックネームキャッシュ、対話中のメッセージを移動するためのサーバ側の規則を設定する機能などによって電子メールメッセージを関係付けてビュー中に置く、対話ビューを提供することができる。
【００２２】
[0026]ウェブサービス２２４およびウェブベース電子メールアプリケーション２２２は、内部ＡＰＩ２２８を通して、中間層として動作するＭＡＰＩ２３２を用いて、データストア２３６と通信することができる。ＭＡＰＩ２３２は、メッセージングアーキテクチャであり、また、特定のメッセージングサーバとのインタフェースであるＭＡＰＩサブシステムルーチンを呼び出すことによって、クライアントプログラムが（電子メール）メッセージング対応のプログラム、（電子メール）メッセージングを配慮したプログラム、または（電子メール）メッセージングベースのプログラムになることを可能にする、コンポーネントオブジェクトモデル（ＣＯＭ）ベースのＡＰＩである。ＭＡＰＩは、クライアントコンピュータ上のメッセージングシステムの完全な制御、メッセージの作成および管理、クライアントメールボックス、サービスプロバイダなどの管理を可能にする。ＭＡＰＩは、メッセージトランスポート、メッセージストア、ディレクトリにアクセスするためのファシリティを含む。ＩＣＳ２３４は、ＭＡＰＩクライアントが所与のフォルダ内に生じた変更を列挙することを可能にするウェブサービスの一部である。ＩＣＳ２３４は、変更追跡モジュールとして考えることができる。
【００２３】
[0027]１つの例示的シナリオでは、ウェブベース電子メールアプリケーション２２２は、対話同期化要求をウェブサービス２２４に送ることができる。これに応えて、ウェブサービス２２４は、フォルダの対話ビュー上にＩＣＳ２３４を呼び出して、変更された対話のリストを確定する。受け取った各対話ＩＤについて、クライアントは、その対話の対話状態ブロブでＧｅｔＣｏｎｖｅｒｓａｔｉｏｎｌｔｅｍｓ要求を送ることができる。ウェブサービス２２４は、フォルダの対話ビューからアイテムリストを読み取り、対話状態のデータと比較し、変更されているアイテムプロパティおよびボディを返信する。より詳細なプロセスについて以下に説明する。
【００２４】
[0028]ウェブベース電子メールアプリケーション２２２は、対話同期化要求を送ることによって、同期化セッションを開始することができる。この要求には、同期させるフォルダＩＤのリスト（例えば、優先順）、同期させるタイムウィンドウ、返送する変更の数、および／またはメガ同期化状態ブロブ（mega synchronization state blob）（最初の同期化においては空）を含むことができる。応答には、更新されたメガ同期化状態ブロブ、さらなる変更があるかどうかを表すフラグ、要求されたフォルダの少なくとも１つに存在している、変更された、または追加された対話、および削除された対話が含まれ得る。対話ごとのデータには、対話ＩＤ、対話オブジェクトのメッセージ識別子（ＭＩＤ）（削除を関連付けるための）、フォルダのいくつかについての総統計、および／または総全体的統計が含まれ得る。削除された対話のそれぞれには、対話オブジェクトのＭＩＤ、メッセージが削除されたフォルダのＩＤが含まれ得る。
【００２５】
[0029]応答を受け取ると、ウェブベース電子メールアプリケーション２２２は、追加／変更された対話を通して繰り返し実行し、削除された対話を通して繰り返し実行し、最後の受信時間が所望のタイムウィンドウを過ぎた対話を削除する。追加／変更された対話を通した繰り返しには、対話ＩＤを使ってローカルデータベース中の対話を見つけること（見つからない場合は、新しい対話を作成することができる）、全体的統計を更新すること、フォルダ統計を更新すること（利用可能な統計を有するフォルダについて）、フォルダＩＤ（ＦＩＤ）中に存在しないフォルダについてのフォルダ統計があればそれを除去すること、「取得（get）」する対話リストに対話ＩＤを追加することが含まれ得る。削除された対話を通した繰り返しには、ＭＩＤを使ってローカルデータベース中の対話を見つけること（見つからない場合は、スキップして次の削除された対話に移る）、その削除された対話が入っていたフォルダについてのフォルダ統計があればそれを除去すること、「取得」する対話リストに対話ＩＤを追加することが含まれ得る。
【００２６】
[0030]同期化セッション中に蓄積された各対話ＩＤについて、ウェブベース電子メールアプリケーション２２２は、次の（１）（２）（３）を引数とするＧｅｔＣｏｎｖｅｒｓａｔｉｏｎｌｔｅｍｓ要求を送ることができる。すなわち、（１）対話ＩＤ、（２）現対話について最後のＧｅｔＣｏｎｖｅｒｓａｔｉｏｎｌｔｅｍｓで受け取ったＣＳｔａｔｅ（対話状態）、（３）該対話中の各メッセージについて、アイテムＩＤ＋変更キー＋読み出しフラグ変更キー。「対話は見つかりません」という応答の場合、ウェブベース電子メールアプリケーションは、自己のデータベースからその対話を削除することができる。対話が見つかった場合には、応答には、変更されたアイテムのメッセージプロパティ、その変更によって影響を受けたメッセージの本文部分、その対話の新たなＣＳｔａｔｅ、その対話中の各メッセージについてアイテムＩＤ＋変更キー＋読み出しフラグ変更キーが含まれ得る。ウェブベース電子メールアプリケーションは、その応答をその対話中に記憶することができる。要求中に存在し応答中には存在しないアイテムＩＤがあれば、そのメッセージを削除することができる。
【００２７】
[0031]ウェブサービス２２４は、同期させるフォルダＩＤのリスト、同期させるタイムウィンドウ、返送する変更の数、および／またはメガ同期化状態ブロブ（最初の同期化においては空）を引数とする対話同期化要求を受け取ることができる。応答には、更新された同期状態ブロブ、さらなる変更があるかどうかを表すフラグ、要求されたフォルダの少なくとも１つに存在している、変更された、または追加された対話、および／または削除された対話が含まれ得る。対話ごとのデータには、対話ＩＤ、対話オブジェクトのＭＩＤ（削除を関連付けるための）、フォルダのいくつかについての総統計、および／または総全体的統計が含まれ得る。削除された対話には、対話オブジェクトのＭＩＤ、その対話が削除されたフォルダのフォルダＩＤが含まれ得る。
【００２８】
[0032]ウェブサービス２２４は、次のステップを実行することにより、応答を計算することができる。
１）メガ同期状態ブロブを、同期させる各フォルダの同期状態に分割する。
２）同期させる各フォルダについて（要求順で）、
ａ．そのフォルダの同期状態が存在しない場合は、
ｉ．ＩＣＳから「キャッチアップ」同期状態を取得し、メガ同期状態に実装する。
【００２９】
ｉｉ．現時間を最後の受信時間（ＬＲＴ）の透かしとして記憶する。
ｂ．同期状態が存在する場合は、要求されたフォルダ上で「対話モード」および「新から旧へ」を使ってＩＣＳを呼び出すことにより、変更を列挙する。
【００３０】
ｉ．ＬＲＴが要求されたタイムウィンドウより前である変更があれば、それをスキップする。
ｉｉ．追加および変更については、対話ＩＤ、ＭＩＤ、集合統計（フォルダおよび全体的）を受け取る。
【００３１】
ｉｉｉ．削除については、対話オブジェクトのＭＩＤを受け取る。
３）同期させる各フォルダについて（ＬＲＴ透かしが新しいものの順で）、
ａ．ＬＲＴ透かしが要求されたタイムウィンドウを過ぎている場合は、次のフォルダにスキップする。
【００３２】
ｂ．ＬＲＴ透かしよりも低い位置のＬＲＴ（ＬＲＴ降順で）の対話について照会する。要求されたタイムウィンドウよりも高い位置のＬＲＴ（または結果の最後）の場合は、その同期状態で検出されたＬＲＴのうち最も低い位置のＬＲＴを記憶する。
システムは、クライアントが要求した変更の数に達したときにはいつでも上記ループを抜ける。
【００３３】
[0033]ウェブサービス２２４は、次の（１）（２）（３）を引数とするＧｅｔＣｏｎｖｅｒｓａｔｉｏｎｌｔｅｍｓ要求を受け取ることができる。すなわち、（１）対話ＩＤ、（２）その対話について前回ＧｅｔＣｏｎｖｅｒｓａｔｉｏｎｌｔｅｍｓで受け取ったＣＳｔａｔｅ、（３）その対話中の各メッセージについて、アイテムＩＤ＋変更キー＋読み出しフラグ変更キー。「対話は見つかりません」という応答の場合、ウェブベース電子メールアプリケーション２２２は、自己のデータベースからその対話を削除することができる。対話が見つかった場合には、応答には、変更されたアイテムのメッセージプロパティ、その変更によって影響を受けたメッセージの本文部分、その対話の新たなＣＳｔａｔｅ、その対話中の各メッセージについてアイテムＩＤ＋変更キー＋読み出しフラグ変更キーが含まれ得る。
【００３４】
[0034]ウェブサービス２２４は、（１）前回の同期状態、（２）フォルダＩＤ、（３）「対話モード」を表す新しいフラグ、（４）「新から旧」フラグ、（５）追加および変更について、返送するエクストラプロパティのリストを引数としてＩＣＳ２３４を呼び出すことができる。ＩＣＳ２３４は、追加／変更された対話、「削除済みアイテムフォルダへ移動した（soft-deleted）」（同期されているフォルダにはもう存在しない）対話、新たな同期状態を返送することができる。追加／変更された対話には、対話ＩＤ、対話オブジェクトのＭＩＤ（将来の削除を関連付けるために使用される）、フォルダ特有の対話統計、全体的対話統計が含まれ得る。「削除済みアイテムフォルダへ移動した」対話には、その対話オブジェクトのＭＩＤも含まれ得る。ＩＣＳモードは、フォルダ中に少なくとも１つのメッセージを有する対話に対する変更はすべて列挙することができる。ウェブサービスは、クライアントに要求された各フォルダについてＩＣＳ列挙を実行していることができるので、フォルダごとの同期状態をデータストア２３６に記憶することができる。
【００３５】
[0035]図３は、対話構造を同期させるためのシステムにおける例示的ストアテーブルおよびインデックスを説明する図である。実施形態によるシステムは、１つまたは複数のテーブルを利用して対話状態、メッセージ状態などの追跡を維持することができる。いくつかの例示テーブルを３００に概念的に示してある。
【００３６】
[0036]上述のように、フォルダ中に少なくとも１つのメッセージを有する対話に対する変更はすべて列挙することができる。同期されているフォルダ（例えば、３４４、３４６）については、変更番号（ＣＮ）でソートされた対話ビューインデックス３５２を維持することができる。いくつかの実施形態では、データストアがフォルダごとにこれらのインデックスのいくつかを維持することができる。メッセージのステータスは、フォルダ３４２の対話ビュー中に維持することができる。フォルダ３４２には、メッセージがそれらの対話属性と共に記録される。対話情報は対話フォルダ３４８に記憶することができる。上記に考察したように、ＭＩＤおよびＦＩＤ（３５０）は、同期化の様々な段階においてシステムが使用できる。
【００３７】
[0037]ウェブサービスは、クライアントに要求された各フォルダについてＩＣＳ列挙を実行していることができるので、フォルダごとに同期状態を記憶することができる。同期状態のサイズが大きすぎる場合は、削除履歴テーブル３５４を使ってデータを除去することができる。メッセージが削除されると、そのメッセージは新しいＣＮと共に削除履歴テーブル３５４に追加される。同期化の時には、まだ処理されていない削除履歴テーブル３５４へのエントリがあれば、それを応答の削除セット中に含めることができる。
【００３８】
[0038]図４は、実施形態によるシステムの主要構成要素間の例示的相互作用を説明する動作図である。４００は、ウェブベース電子メールアプリケーション４６２、ウェブサービス４６４、ＩＣＳ４６６、ストア４６８間の相互作用を示すが、実施形態によるシステムは、追加相互作用を行う追加構成要素を含むことができる。
【００３９】
[0039]１つの例示的シナリオにおいては、ウェブベース電子メールアプリケーション４６２は、対話同期化要求をもってプロセスを開始し（４７１）、ウェブサービス４６４は、ＩＣＳ４６６を通して、フォルダの対話ビュー上でその要求を読み取る（４７２）。ＩＣＳ４６６は、ウェブサービス４６４に同期化オペレーションを返送することができ（４７３）、それによって、ウェブベース電子メールアプリケーション４６２に対話ＩＤを提供することができる（４７４）。これに応答して、ウェブベース電子メールアプリケーション４６２は、前回の状態を含むＧｅｔＣｏｎｖｅｒｓａｔｉｏｎＩｔｅｍｓ要求をウェブサービス４６４に送ることができる（４７５）。ウェブサービス４６４は、ウェブベース電子メールアプリケーションから受け取った対話ＩＤに基づいてフォルダの対話ビューについての照会を、ＩＣＳ４６６を通してストア４６８に実行依頼する（４７６）。
【００４０】
[0040]この照会に応えて、ウェブサービス４６４は、ストア４６８からアイテムおよび変更キーのリストを受け取り（４７７）、それらのアイテムを照会する（４７８）。ストア４６８は、アイテムプロパティおよび本文の差分をウェブサービス４６４に返送することができ（４７９）、ウェブサービス４６４は、アイテムプロパティ、本文の差分、新たな状態をウェブベース電子メールアプリケーション４６２に送ることができる（４８０）。実施形態によるシステムはまた、より少ない、または追加相互作用を利用して、クライアント間の対話を同期させることができる。
【００４１】
[0041]図１から図４の例示的実施形態は、特有の構成要素および構成で示してあるが、実施形態は、これらの例示的構成によるシステムに限定されるものではない。ウェブベースシステムにおける電子メール対話構造の同期化は、ビジネスアプリケーションにおけるより少ない、または追加構成要素を使用した構成でも実装できる。さらに、図１から図４に示す例示的アーキテクチャ、システム、構成要素、およびそれらの属性は、本明細書に記載する原理を使ったその他の構成要素を用いても、同様のやり方で実装することができる。
【００４２】
[0042]図５は、実施形態によるシステムを実装することができるネットワーク化環境の図である。対話同期化を行うウェブベース電子メールサービスは、１つまたは複数のサーバ５１４、またはホスト型サービスなどの単一サーバ（例えば、ウェブサーバ）５１６で実行される１つまたは複数のアプリケーションを通して容易にすることができる。電子メール交換や対話同期化を容易にするアプリケーションは、スマートフォン５１３、ラップトップコンピュータ５１２、またはデスクトップコンピュータ５１１（「クライアントデバイス」）などの個々のコンピューティングデバイス上のブラウザなど、クライアントアプリケーションと、ネットワーク５１０を通して通信することができる。
【００４３】
[0043]上記に考察したように、ウェブベース電子メールサービスは、クライアントデバイス５１１〜５１３および同様のデバイス上のクライアントアプリケーションが、同期化がフォルダのサブセットに制約される場合にも、クライアントアプリケーション全体にわたって対話を同期させながら、電子メールを交換することを可能にすることができる。サーバは、直接、またはデータベースサーバ５１８を通して、データストア５１９からデータを検索し、データストア５１９にデータを記憶することができる。
【００４４】
[0044]ネットワーク５１０は、サーバ、クライアント、インターネットサービスプロバイダ、通信媒体の任意のトポロジーを含むことができる。実施形態によるシステムは、静的または動的なトポロジーを有することができる。ネットワーク５１０には、企業ネットワークなどのセキュリティで保護されたネットワーク、無線オープンネットワークなどのセキュリティで保護されていないネットワーク、またはインターネットが含まれ得る。ネットワーク５１０はまた、公衆交換電話網（ＰＳＴＮ）やセルラネットワークなど、その他のネットワークを介した通信を調整することもできる。さらに、ネットワーク５１０には、ブルートゥースや同様のものなど、短距離無線ネットワークを含まれ得る。ネットワーク５１０は、本明細書に記載のノード間の通信を提供する。限定ではなく例示として、ネットワーク５１０には、アコースティック、ＲＦ、赤外線、その他の無線媒体などの無線媒体も含まれ得る。
【００４５】
[0045]多くのその他のコンピューティングデバイス、アプリケーション、データソース、データディストリビューションシステムの構成を使用して、対話同期化を行うウェブベース電子メールサービスを実装することができる。さらに、図５において考察したネットワーク化環境は、説明の目的だけのためのものである。実施形態は、例示的アプリケーション、モジュール、またはプロセスに限定されるものではない。
【００４６】
[0046]図６およびそれに関連する考察は、実施形態を実装できる適切なコンピューティング環境の簡単な全体的説明を提供することを意図したものである。図６を見ると、コンピューティングデバイス６００などの、実施形態によるアプリケーションのための例示的コンピューティングオペレーティング環境のブロック図が示してある。基本的な構成では、コンピューティングデバイス６００は、少なくとも１台の処理装置６０２とシステムメモリ６０４を含む。コンピューティングデバイス６００はまた、プログラム実行において協同する複数の処理装置も含むことができる。正確な構成およびコンピューティングデバイスのタイプに応じて、システムメモリ６０４は揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュメモリなど）、またはその２種類の何らかの組み合わせであり得る。システムメモリ６０４は、典型的には、ワシントン州レッドモンドのマイクロソフトコーポレーションのＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムなど、プラットホームのオペレーションを制御するのに適したオペレーティングシステム６０５を含む。システムメモリ６０４はまた、プログラムモジュール６０６、ウェブサービス６２２、ウェブベース電子メールアプリケーション６２４などの１つまたは複数のソフトウェアアプリケーションも含むことができる。
【００４７】
[0047]ウェブサービス６２２は、数あるサービスの中でも、クライアントアプリケーション間の電子メール交換を容易にする電子メールサービスを提供することができる。ウェブサービス６２２には、ウェブベース電子メールアプリケーション６２４など、ウェブベースサービスを提供する１つまたは複数のアプリケーションが含まれ得る。ウェブベース電子メールアプリケーション６２４は、各クライアントにおける対話状態、対話同期化のためのウェブサービスコマンドを利用することによって、電子メールシステム内の対話の同期化を可能にすることができる。この基本的な構成を、破線６０８内の構成によって図６に示す。
【００４８】
[0048]コンピューティングデバイス６００は、追加の特徴または機能性を有することができる。例えば、コンピューティングデバイス６００はまた、例えば磁気ディスク、光ディスク、またはテープなどの追加データ記憶装置（取り外し可能な、および／または取り外し不可能な）も含むことができる。このような追加ストレージを、取り外し可能ストレージ６０９および取り外し不可能ストレージ６１０によって図６に示す。コンピュータ読み取り可能記憶媒体には、コンピュータ読み取り可能指示、データ構造、プログラムモジュール、またはその他のデータなどの情報の記憶のための任意の方法または技術で実装することが可能な、揮発性および不揮発性、取り外し可能および取り外し不可能な媒体が含まれ得る。コンピュータ読み取り可能記憶媒体は、非一時的コンピュータ読み取り可能メモリデバイスである。システムメモリ６０４、取り外し可能ストレージ６０９、取り外し不可能ストレージ６１０はすべて、コンピュータ読み取り可能記憶媒体の例である。コンピュータ読み取り可能記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他の磁気記憶装置、または所望の情報を記憶するために使用することができ、コンピューティングデバイス６００がアクセスすることが可能なその他のどのような媒体でも含まれるが、それらに限定されるものではない。このようなコンピュータ読み取り可能記憶媒体はいずれもコンピューティングデバイス６００の一部となり得る。コンピューティングデバイス６００はまた、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、および同様の入力デバイスなどの入力デバイス６１２も有することができる。ディスプレイ、スピーカ、プリンタ、その他のタイプの出力デバイスなどの出力デバイス６１４も含まれ得る。これらのデバイスは当分野ではよく知られているので、ここで詳細に論じる必要はない。
【００４９】
[0049]コンピューティングデバイス６００はまた、デバイスが、分散コンピューティング環境における無線ネットワーク、衛星リンク、セルラリンク、および同様のメカニズムなどを介して他のデバイス６１８と通信できるようにする通信接続６１６も含むことができる。その他のデバイス６１８には、通信アプリケーションを実行するコンピュータデバイス、ストレージサーバ、および同様のデバイスが含まれ得る。通信接続６１６は、通信媒体の一例である。通信媒体は、コンピュータ読み取り可能指示、データ構造、プログラムモジュール、または搬送波やその他のトランスポートメカニズムなどの変調されたデータ信号中のその他のデータを含むことができ、また、通信媒体には任意の情報引渡し媒体が含まれる。「変調されたデータ信号」という用語は、その信号中の情報を符号化するようにその特性の１つまたは複数が設定または変更された信号を意味する。限定ではなく例示として、通信媒体には、有線ネットワークまたは有線直結接続などの有線媒体と、アコースティック、ＲＦ、赤外線、その他の無線媒体などの無線媒体とが含まれる。
【００５０】
[0050]例示的実施形態は方法も含む。これらの方法は、本文書に記載する構造を始めとして多くの方法で実装することができる。このような方法のうち１つは、本文書に記載のタイプのデバイスのマシンオペレーションによるものである。
【００５１】
[0051]別の任意の方法は、それらの方法の個々のオペレーションの１つまたは複数を、１人または複数の人間オペレータがいくつかのオペレーションを行うのと共に実行することである。これらの人間オペレータは互いに一緒に居る必要はなく、各々が、プログラムの一部を実行するマシンと共に居さえすればよい。
【００５２】
[0052]図７は、実施形態による、ウェブベース電子メールシステムにおいて対話構造を同期させるプロセス７００の論理流れ図を示す。プロセス７００は、任意のウェブベース電子メールサービスまたはアプリケーションによって実行することができる。
【００５３】
[0053]プロセス７００は、オペレーション７１０で開始することができ、オペレーション７１０では対話を列挙することができる。新規クライアントまたは長期不在の後サービスに参加したクライアントには、対話に関連付けられた電子メールや属性など、すべての対話情報を提供することができる。オペレーション７２０で、対話の詳細および状態をクライアントに提供することができる。対話は、対話識別子、名称、または同様の適切な属性によって識別することができる。
【００５４】
[0054]オペレーション７３０で、クライアントから対話状態を受け取ることができる。ウェブベース電子メールサービスは、オペレーション７４０で、クライアントの対話状態に基づいて、クライアントに提供する対話の詳細を確定し、その詳細をクライアントに提供することができる。このサービスは、同時に、クライアントの状態を更新することができ、または、クライアントが自己の状態をローカルに更新することができる。
【００５５】
[0055]実施形態のうちあるものは、通信モジュール、メモリ、プロセッサを含むコンピュータデバイスで実装することができ、この場合、プロセッサは、上記の方法または同様の方法を、メモリに記憶された指示に関連して実行する。また別の実施形態には、上記の方法または同様の方法を実行するための指示が記憶されたコンピュータ読み取り可能記憶媒体として実装できるものもある。
【００５６】
[0056]プロセス７００に含まれるオペレーションは、説明を目的としている。対話同期化を行うウェブベース電子メールサービスは、ステップがより少ない、または追加ステップを有する同様のプロセスによっても実装できるし、本明細書に記載の原理を使った、異なる順序のオペレーションによっても実装できる。
【００５７】
[0057]上記の詳述、例、データは、実施形態の構成の製造および使用についての完全な説明を提供するものである。構造的特徴および／または方法論的動作に特有の専門用語で主題を説明してきたが、添付の特許請求の範囲で定義される主題は、必ずしも上記に説明した特有の特徴または動作に限定されるものではないことを理解されたい。むしろ、上記に説明した特有の特徴および動作は、特許請求の範囲および実施形態を実装する例示的形態として開示したものである。
【図１】
0006018204.tif 000002
【図２】
0006018204.tif 000003
【図３】
0006018204.tif 000004
【図４】
0006018204.tif 000005
【図５】
0006018204.tif 000006
【図６】
0006018204.tif 000007
【図７】
0006018204.tif 000008