(58)【調査した分野】(Int.Cl.,DB名)
前記クライアントアプリケーションに送信する応答に、更新された同期状態ブロブ、さらなる変更があるかどうかを示すフラグ、前記要求されたフォルダの少なくとも1つに存在する、変更された対話および追加された対話、ならびに削除された対話の組のうち少なくとも1つを含ませるステップをさらに含む、請求項1〜3のいずれか一項に記載の方法。
前記第2のサーバはさらに、各対話に関連付けられたフォルダ特有情報と全体的情報とを、集合データと共に前記ウェブベース電子メールアプリケーションに返送するように構成された、請求項12に記載のシステム。
前記第2のサーバはさらに、内部APIとメッセージングAPI(MAPI)とを通して前記変更追跡モジュールを呼び出すことにより、前記ウェブサービスデータストアに照会するように構成された、請求項13〜15のいずれか一項に記載のシステム。
【発明を実施するための形態】
【0009】
[0013]上記に簡単に説明したように、フォルダ特有対話情報および全体的対話情報は、対話状態を利用しているウェブベースメールシステム中の電子メールクライアントアプリケーションを用いて同期させることができる。以下の詳細な説明では、本明細書の一部をなし、具体的な実施形態または実施例を説明するために示す添付図面を参照していく。態様には、組み合わせてもよいものもあるし、活用できるものもある。また、本開示の趣旨または範囲を逸脱しない範囲で構造上の変更を行うことができる。したがって、以下の詳細な説明は限定する意味で捉えるべきものではなく、本発明の範囲は、付随する請求項およびそれらと同等のものによって定義される。
【0010】
[0014]以下の詳細な説明では、本明細書の一部をなし、具体的な実施形態また
は実施例を説明するために示す添付図面を参照していく。態様には、組み合わせてもよいものもあるし、活用できるものもある。また、本開示の趣旨または範囲を逸脱しない範囲で構造上の変更を行うことができる。したがって、以下の詳細な説明は限定する意味で捉えるべきものではなく、本発明の範囲は、付随する請求項およびそれらと均等なものによって定義される。
【0011】
[0015]実施形態を、コンピューティングデバイス上のオペレーティングシステム上で走るアプリケーションプログラムと併せて実行されるプログラムモジュールという一般的な状況で説明するが、当業者は、他のプログラムモジュールと組み合わせても態様を実装できることを認識するであろう。
【0012】
[0016]一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスクを実施したり抽象データ型を実装したりするその他のタイプの構造を含み得る。さらに、当業者は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルの一般消費者向け電気製品、ミニコンピュータ、メインフレームコンピュータ、および同様のコンピューティングデバイスを含む、その他のコンピュータシステム構成でも実施形態を実施できることを理解するであろう。実施形態はまた、通信ネットワークを通じてリンクされたリモート処理装置によってタスクが実行される、分散コンピューティング環境においても実施できる。分散コンピューティング環境では、ローカルとリモート両方のメモリ記憶装置にプログラムモジュールを設けることができる。
【0013】
[0017]実施形態は、コンピュータによって実行されるプロセス(方法)やコンピューティングシステムとして、またはコンピュータプログラム製品もしくはコンピュータ読み取り可能媒体などの製品として実装することができる。コンピュータプログラム製品は、コンピュータシステムが読み取り可能であって、コンピュータまたはコンピューティングシステムに例示的プロセスを実行させるための指示を含むコンピュータプログラムを符号化するコンピュータ記憶媒体であってよい。コンピュータ読み取り可能記憶媒体は、非一時的コンピュータ読み取り可能メモリデバイスである。コンピュータ読み取り可能記憶媒体は、例えば、1つまたは複数の揮発性コンピュータメモリ、不揮発性メモリ、ハードドライブ、フラッシュドライブ、フロッピー(登録商標)ディスクまたはコンパクトディスク、および同様の媒体を介して実装することができる。
【0014】
[0018]本明細書を通して、「プラットホーム」という用語は、ウェブベース電子メールサービスを提供するためのソフトウェアコンポーネントとハードウェアコンポーネントの組み合わせであり得る。プラットホームの例として、複数のサーバにわたって実行されるホスト型サービス、単一のコンピューティングデバイス上で実行されるアプリケーション、および同様のシステムが挙げられるが、それらに限定されるわけではない。「サーバ」という用語は、一般に、典型的にはネットワーク化環境において1つまたは複数のソフトウェアプログラムを実行するコンピューティングデバイスを指す。しかし、サーバは、ネットワーク上のサーバとしてみなされる、1つまたは複数のコンピューティングデバイス上で実行されるバーチャルサーバ(ソフトウェアプログラム)として実装することもできる。これらの技術および例示的オペレーションについてのさらなる詳細を以下に記載する。
【0015】
[0019]
図1を見ると
、100は、いくつかの実施形態による、ウェブベース電子メールにおける対話構造を同期させるための例示的ネットワーク化システムを説明する図である
。100に示す例示的構成要素は、説明を目的とするものである。実施形態は、様々なコンピューティングデバイスおよびシステムを利用している様々なローカルコンピューティング環境、ネットワーク化コンピューティング環境、および同様のコンピューティング環境において実装することができる。
【0016】
[0020]いくつかの実施形態によれば、電子メール交換を容易にするウェブサービス102の一部としてのウェブサービスコマンドは、クライアント(例えば、106、108、110)が、指定されたフォルダおよびタイムウィンドウ内に少なくとも1つの電子メールを有する対話を同期することを可能にする。ウェブサービス102は、電子メールではなく対話に対する変更を報告し、サービスに新たに参加したクライアントがすべての対話データを受け取るように、既存の対話を効率的に列挙することができる。既読/未読/フラグ付き/返信済み電子メール(特有フォルダまたは全体における)の数など、各対話についてのフォルダ特有情報および全体的情報を報告することができる。ウェブサービス102はまた、クライアントが同期化セッションを制御することを可能にする同期状態を返信することができる
。100に示すように、ウェブサービス102およびクライアント106〜110は、1つまたは複数のネットワーク112を介して通信することができ、また、電子メール(および対話)関連のデータは、1つまたは複数のデータストア104に記憶することができる。
【0017】
[0021]実施形態によるウェブサービスは、サーバデータベース中の対話オブジェクトに対する変更を追跡して、変更された対話がある場合はその構造をクライアントに報告することができる。これには、主題、受取人、フラグ、重要、カテゴリーなどのような集合データが含まれ得る。報告されるデータにはまた、対話の一部である電子メール(例えば、「itemId」で識別される電子メール)のリストを含めることができる。
【0018】
[0022]フォルダの既存の内容を効率的に投入する(populate)ために、クライアントが初めて接続したときに、各要求について最後に同期された対話が求められる、クエリメカニズムが使用できる。このアプローチは、同期状態を小さく維持し、サーバにとって効率的なオペレーションである。
【0019】
[0023]
図2は、実施形態によるシステムの主要構成要素を説明する図である。電子メールサービス内の対話の同期化を可能にするシステムは、任意の数の構成要素を含むことができる
。200に示す構成要素は例示の目的のためだけのものであり、実施形態を限定するものではない。
【0020】
[0024]実施形態によるシステム内の例示的コンポーネントは、ウェブサービス224(例えば、ワシントン州レッドモンドのマイクロソフトコーポレーションによるExchange(登録商標))と通信するウェブベース電子メールアプリケーション222、および同期化サービス226を含む。ウェブサービス224および同期化サービス226は、内部アプリケーションプログラミングインタフェース(API)228内の同期化プロバイダ230と、また、メッセージングAPI(MAPI)232を通して、電子メール、対話、関連メタデータを記憶しているデータストア236の増分変更同期化(ICS)234と相互作用することができる。
【0021】
[0025]同期化サービス226の例として、ワシントン州レッドモンドのマイクロソフトコーポレーションによるExchange ActiveSync(登録商標)(EAS)が挙げられる。Exchange ActiveSync(登録商標)(EAS)は、メッセージングサーバからモバイルデバイスへの電子メール、コンタクト、カレンダ、タスク、およびノートの同期化のために設計されたハイパーテキスト転送プロトコル(HTTP)によって通信する、XMLベースプロトコルである。このプロトコルはまた、モバイルデバイス管理およびポリシー制御も提供することができる。同期化サービス226は、メッセージIDおよび電子メールの主題を含むいくつかの属性、同期しているノート(notes synchronizing)、コンタクトの利用可能性(フリー/ビジーステータス)を探索する機能(そのカレンダから)、一般的に使用されるコンタクトの名称が共有されているニックネームキャッシュ、対話中のメッセージを移動するためのサーバ側の規則を設定する機能などによって電子メールメッセージを関係付けてビュー中に置く、対話ビューを提供することができる。
【0022】
[0026]ウェブサービス224およびウェブベース電子メールアプリケーション222は、内部API228を通して、中間層として動作するMAPI232を用いて、データストア236と通信することができる。MAPI232は、メッセージングアーキテクチャであり、また、特定のメッセージングサーバとのインタフェースであるMAPIサブシステムルーチンを呼び出すことによって、クライアントプログラムが(電子メール)メッセージング対応のプログラム、(電子メール)メッセージングを配慮したプログラム、または(電子メール)メッセージングベースのプログラムになることを可能にする、コンポーネントオブジェクトモデル(COM)ベースのAPIである。MAPIは、クライアントコンピュータ上のメッセージングシステムの完全な制御、メッセージの作成および管理、クライアントメールボックス、サービスプロバイダなどの管理を可能にする。MAPIは、メッセージトランスポート、メッセージストア、ディレクトリにアクセスするためのファシリティを含む。ICS234は、MAPIクライアントが所与のフォルダ内に生じた変更を列挙することを可能にするウェブサービスの一部である。ICS234は、変更追跡モジュールとして考えることができる。
【0023】
[0027]1つの例示的シナリオでは、ウェブベース電子メールアプリケーション222は、対話同期化要求をウェブサービス224に送ることができる。これに応えて、ウェブサービス224は、フォルダの対話ビュー上にICS234を呼び出して、変更された対話のリストを確定する。受け取った各対話IDについて、クライアントは、その対話の対話状態ブロブでGetConversationltems要求を送ることができる。ウェブサービス224は、フォルダの対話ビューからアイテムリストを読み取り、対話状態のデータと比較し、変更されているアイテムプロパティおよびボディを返信する。より詳細なプロセスについて以下に説明する。
【0024】
[0028]ウェブベース電子メールアプリケーション222は、対話同期化要求を送ることによって、同期化セッションを開始することができる。この要求には、同期させるフォルダIDのリスト(例えば、優先順)、同期させるタイムウィンドウ、返送する変更の数、および/またはメガ同期化状態ブロブ(mega synchronization state blob)(最初の同期化においては空)を含むことができる。応答には、更新されたメガ同期化状態ブロブ、さらなる変更があるかどうかを表すフラグ、要求されたフォルダの少なくとも1つに存在している、変更された、または追加された対話、および削除された対話が含まれ得る。対話ごとのデータには、対話ID、対話オブジェクトのメッセージ識別子(MID)(削除を関連付けるための)、フォルダのいくつかについての総統計、および/または総全体的統計が含まれ得る。削除された対話のそれぞれには、対話オブジェクトのMID、メッセージが削除されたフォルダのIDが含まれ得る。
【0025】
[0029]応答を受け取ると、ウェブベース電子メールアプリケーション222は、追加/変更された対話を通して繰り返し実行し、削除された対話を通して繰り返し実行し、最後の受信時間が所望のタイムウィンドウを過ぎた対話を削除する。追加/変更された対話を通した繰り返しには、対話IDを使ってローカルデータベース中の対話を見つけること(見つからない場合は、新しい対話を作成することができる)、全体的統計を更新すること、フォルダ統計を更新すること(利用可能な統計を有するフォルダについて)、フォルダID(FID)中に存在しないフォルダについてのフォルダ統計があればそれを除去すること、「取得(get)」する対話リストに対話IDを追加することが含まれ得る。削除された対話を通した繰り返しには、MIDを使ってローカルデータベース中の対話を見つけること(見つからない場合は、スキップして次の削除された対話に移る)、その削除された対話が入っていたフォルダについてのフォルダ統計があればそれを除去すること、「取得」する対話リストに対話IDを追加することが含まれ得る。
【0026】
[0030]同期化セッション中に蓄積された各対話IDについて、ウェブベース電子メールアプリケーション222は、次の(1)(2)(3)を引数とするGetConversationltems要求を送ることができる。すなわち、(1)対話ID、(2)現対話について最後のGetConversationltemsで受け取ったCState(対話状態)、(3)該対話中の各メッセージについて、アイテムID+変更キー+読み出しフラグ変更キー。「対話は見つかりません」という応答の場合、ウェブベース電子メールアプリケーションは、自己のデータベースからその対話を削除することができる。対話が見つかった場合には、応答には、変更されたアイテムのメッセージプロパティ、その変更によって影響を受けたメッセージの本文部分、その対話の新たなCState、その対話中の各メッセージについてアイテムID+変更キー+読み出しフラグ変更キーが含まれ得る。ウェブベース電子メールアプリケーションは、その応答をその対話中に記憶することができる。要求中に存在し応答中には存在しないアイテムIDがあれば、そのメッセージを削除することができる。
【0027】
[0031]ウェブサービス224は、同期させるフォルダIDのリスト、同期させるタイムウィンドウ、返送する変更の数、および/またはメガ同期化状態ブロブ(最初の同期化においては空)を引数とする対話同期化要求を受け取ることができる。応答には、更新された同期状態ブロブ、さらなる変更があるかどうかを表すフラグ、要求されたフォルダの少なくとも1つに存在している、変更された、または追加された対話、および/または削除された対話が含まれ得る。対話ごとのデータには、対話ID、対話オブジェクトのMID(削除を関連付けるための)、フォルダのいくつかについての総統計、および/または総全体的統計が含まれ得る。削除された対話には、対話オブジェクトのMID、その対話が削除されたフォルダのフォルダIDが含まれ得る。
【0028】
[0032]ウェブサービス224は、次のステップを実行することにより、応答を計算することができる。
1)メガ同期状態ブロブを、同期させる各フォルダの同期状態に分割する。
2)同期させる各フォルダについて(要求順で)、
a.そのフォルダの同期状態が存在しない場合は、
i.ICSから「キャッチアップ」同期状態を取得し、メガ同期状態に実装する。
【0029】
ii.現時間を最後の受信時間(LRT)の透かしとして記憶する。
b.同期状態が存在する場合は、要求されたフォルダ上で「対話モード」および「新から旧へ」を使ってICSを呼び出すことにより、変更を列挙する。
【0030】
i.LRTが要求されたタイムウィンドウより前である変更があれば、それをスキップする。
ii.追加および変更については、対話ID、MID、集合統計(フォルダおよび全体的)を受け取る。
【0031】
iii.削除については、対話オブジェクトのMIDを受け取る。
3)同期させる各フォルダについて(LRT透かしが新しいものの順で)、
a.LRT透かしが要求されたタイムウィンドウを過ぎている場合は、次のフォルダにスキップする。
【0032】
b.LRT透かしよりも低い位置のLRT(LRT降順で)の対話について照会する。要求されたタイムウィンドウよりも高い位置のLRT(または結果の最後)の場合は、その同期状態で検出されたLRTのうち最も低い位置のLRTを記憶する。
システムは、クライアントが要求した変更の数に達したときにはいつでも上記ループを抜ける。
【0033】
[0033]ウェブサービス224は、次の(1)(2)(3)を引数とするGetConversationltems要求を受け取ることができる。すなわち、(1)対話ID、(2)その対話について前回GetConversationltemsで受け取ったCState、(3)その対話中の各メッセージについて、アイテムID+変更キー+読み出しフラグ変更キー。「対話は見つかりません」という応答の場合、ウェブベース電子メールアプリケーション222は、自己のデータベースからその対話を削除することができる。対話が見つかった場合には、応答には、変更されたアイテムのメッセージプロパティ、その変更によって影響を受けたメッセージの本文部分、その対話の新たなCState、その対話中の各メッセージについてアイテムID+変更キー+読み出しフラグ変更キーが含まれ得る。
【0034】
[0034]ウェブサービス224は、(1)前回の同期状態、(2)フォルダID、(3)「対話モード」を表す新しいフラグ、(4)「新から旧」フラグ、(5)追加および変更について、返送するエクストラプロパティのリストを引数としてICS234を呼び出すことができる。ICS234は、追加/変更された対話、「削除済みアイテムフォルダへ移動した(soft-deleted)」(同期されているフォルダにはもう存在しない)対話、新たな同期状態を返送することができる。追加/変更された対話には、対話ID、対話オブジェクトのMID(将来の削除を関連付けるために使用される)、フォルダ特有の対話統計、全体的対話統計が含まれ得る。「削除済みアイテムフォルダへ移動した」対話には、その対話オブジェクトのMIDも含まれ得る。ICSモードは、フォルダ中に少なくとも1つのメッセージを有する対話に対する変更はすべて列挙することができる。ウェブサービスは、クライアントに要求された各フォルダについてICS列挙を実行していることができるので、フォルダごとの同期状態をデータストア236に記憶することができる。
【0035】
[0035]
図3は、対話構造を同期させるためのシステムにおける例示的ストアテーブルおよびインデックスを説明する図である。実施形態によるシステムは、1つまたは複数のテーブルを利用して対話状態、メッセージ状態などの追跡を維持することができる。いくつかの例示テーブル
を300に概念的に示してある。
【0036】
[0036]上述のように、フォルダ中に少なくとも1つのメッセージを有する対話に対する変更はすべて列挙することができる。同期されているフォルダ(例えば、344、346)については、変更番号(CN)でソートされた対話ビューインデックス352を維持することができる。いくつかの実施形態では、データストアがフォルダごとにこれらのインデックスのいくつかを維持することができる。メッセージのステータスは、フォルダ342の対話ビュー中に維持することができる。フォルダ342には、メッセージがそれらの対話属性と共に記録される。対話情報は対話フォルダ348に記憶することができる。上記に考察したように、MIDおよびFID(350)は、同期化の様々な段階においてシステムが使用できる。
【0037】
[0037]ウェブサービスは、クライアントに要求された各フォルダについてICS列挙を実行していることができるので、フォルダごとに同期状態を記憶することができる。同期状態のサイズが大きすぎる場合は、削除履歴テーブル354を使ってデータを除去することができる。メッセージが削除されると、そのメッセージは新しいCNと共に削除履歴テーブル354に追加される。同期化の時には、まだ処理されていない削除履歴テーブル354へのエントリがあれば、それを応答の削除セット中に含めることができる。
【0038】
[0038]
図4は、実施形態によるシステムの主要構成要素間の例示的相互作用を説明する動作図である
。400は、ウェブベース電子メールアプリケーション462、ウェブサービス464、ICS466、ストア468間の相互作用を示すが、実施形態によるシステムは、追加相互作用を行う追加構成要素を含むことができる。
【0039】
[0039]1つの例示的シナリオにおいては、ウェブベース電子メールアプリケーション462は、対話同期化要求をもってプロセスを開始し(471)、ウェブサービス464は、ICS466を通して、フォルダの対話ビュー上でその要求を読み取る(472)。ICS466は、ウェブサービス464に同期化オペレーションを返送することができ(473)、それによって、ウェブベース電子メールアプリケーション462に対話IDを提供することができる(474)。これに応答して、ウェブベース電子メールアプリケーション462は、前回の状態を含むGetConversationItems要求をウェブサービス464に送ることができる(475)。ウェブサービス464は、ウェブベース電子メールアプリケーションから受け取った対話IDに基づいてフォルダの対話ビューについての照会を、ICS466を通してストア468に実行依頼する(476)。
【0040】
[0040]この照会に応えて、ウェブサービス464は、ストア468からアイテムおよび変更キーのリストを受け取り(477)、それらのアイテムを照会する(478)。ストア468は、アイテムプロパティおよび本文の差分をウェブサービス464に返送することができ(479)、ウェブサービス464は、アイテムプロパティ、本文の差分、新たな状態をウェブベース電子メールアプリケーション462に送ることができる(480)。実施形態によるシステムはまた、より少ない、または追加相互作用を利用して、クライアント間の対話を同期させることができる。
【0041】
[0041]
図1から
図4の例示的実施形態は、特有の構成要素および構成で示してあるが、実施形態は、これらの例示的構成によるシステムに限定されるものではない。ウェブベースシステムにおける電子メール対話構造の同期化は、ビジネスアプリケーションにおけるより少ない、または追加構成要素を使用した構成でも実装できる。さらに、
図1から
図4に示す例示的アーキテクチャ、システム、構成要素、およびそれらの属性は、本明細書に記載する原理を使ったその他の構成要素を用いても、同様のやり方で実装することができる。
【0042】
[0042]
図5は、実施形態によるシステムを実装することができるネットワーク化環境の図である。対話同期化を行うウェブベース電子メールサービスは、1つまたは複数のサーバ514、またはホスト型サービスなどの単一サーバ(例えば、ウェブサーバ)516で実行される1つまたは複数のアプリケーションを通して容易にすることができる。電子メール交換や対話同期化を容易にするアプリケーションは、スマートフォン513、ラップトップコンピュータ512、またはデスクトップコンピュータ511(「クライアントデバイス」)などの個々のコンピューティングデバイス上のブラウザなど、クライアントアプリケーションと、ネットワーク510を通して通信することができる。
【0043】
[0043]上記に考察したように、ウェブベース電子メールサービスは、クライアントデバイス511〜513および同様のデバイス上のクライアントアプリケーションが、同期化がフォルダのサブセットに制約される場合にも、クライアントアプリケーション全体にわたって対話を同期させながら、電子メールを交換することを可能にすることができる。サーバは、直接、またはデータベースサーバ518を通して、データストア519からデータを検索し、データストア519にデータを記憶することができる。
【0044】
[0044]ネットワーク510は、サーバ、クライアント、インターネットサービスプロバイダ、通信媒体の任意のトポロジーを含むことができる。実施形態によるシステムは、静的または動的なトポロジーを有することができる。ネットワーク510には、企業ネットワークなどのセキュリティで保護されたネットワーク、無線オープンネットワークなどのセキュリティで保護されていないネットワーク、またはインターネットが含まれ得る。ネットワーク510はまた、公衆交換電話網(PSTN)やセルラネットワークなど、その他のネットワークを介した通信を調整することもできる。さらに、ネットワーク510には、ブルートゥースや同様のものなど、短距離無線ネットワークを含まれ得る。ネットワーク510は、本明細書に記載のノード間の通信を提供する。限定ではなく例示として、ネットワーク510には、アコースティック、RF、赤外線、その他の無線媒体などの無線媒体も含まれ得る。
【0045】
[0045]多くのその他のコンピューティングデバイス、アプリケーション、データソース、データディストリビューションシステムの構成を使用して、対話同期化を行うウェブベース電子メールサービスを実装することができる。さらに、
図5において考察したネットワーク化環境は、説明の目的だけのためのものである。実施形態は、例示的アプリケーション、モジュール、またはプロセスに限定されるものではない。
【0046】
[0046]
図6およびそれに関連する考察は、実施形態を実装できる適切なコンピューティング環境の簡単な全体的説明を提供することを意図したものである。
図6を見ると、コンピューティングデバイス600などの、実施形態によるアプリケーションのための例示的コンピューティングオペレーティング環境のブロック図が示してある。基本的な構成では、コンピューティングデバイス600は、少なくとも1台の処理装置602とシステムメモリ604を含む。コンピューティングデバイス600はまた、プログラム実行において協同する複数の処理装置も含むことができる。正確な構成およびコンピューティングデバイスのタイプに応じて、システムメモリ604は揮発性(RAMなど)、不揮発性(ROM、フラッシュメモリなど)、またはその2種類の何らかの組み合わせであり得る。システムメモリ604は、典型的には、ワシントン州レッドモンドのマイクロソフトコーポレーションのWindows(登録商標)オペレーティングシステムなど、プラットホームのオペレーションを制御するのに適したオペレーティングシステム605を含む。システムメモリ604はまた、プログラムモジュール606、ウェブサービス622、ウェブベース電子メールアプリケーション624などの1つまたは複数のソフトウェアアプリケーションも含むことができる。
【0047】
[0047]ウェブサービス622は、数あるサービスの中でも、クライアントアプリケーション間の電子メール交換を容易にする電子メールサービスを提供することができる。ウェブサービス622には、ウェブベース電子メールアプリケーション624など、ウェブベースサービスを提供する1つまたは複数のアプリケーションが含まれ得る。ウェブベース電子メールアプリケーション624は、各クライアントにおける対話状態、対話同期化のためのウェブサービスコマンドを利用することによって、電子メールシステム内の対話の同期化を可能にすることができる。この基本的な構成を、破線608内の構成によって
図6に示す。
【0048】
[0048]コンピューティングデバイス600は、追加の特徴または機能性を有することができる。例えば、コンピューティングデバイス600はまた、例えば磁気ディスク、光ディスク、またはテープなどの追加データ記憶装置(取り外し可能な、および/または取り外し不可能な)も含むことができる。このような追加ストレージを、取り外し可能ストレージ609および取り外し不可能ストレージ610によって
図6に示す。コンピュータ読み取り可能記憶媒体には、コンピュータ読み取り可能指示、データ構造、プログラムモジュール、またはその他のデータなどの情報の記憶のための任意の方法または技術で実装することが可能な、揮発性および不揮発性、取り外し可能および取り外し不可能な媒体が含まれ得る。コンピュータ読み取り可能記憶媒体は、非一時的コンピュータ読み取り可能メモリデバイスである。システムメモリ604、取り外し可能ストレージ609、取り外し不可能ストレージ610はすべて、コンピュータ読み取り可能記憶媒体の例である。コンピュータ読み取り可能記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリまたはその他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他の磁気記憶装置、または所望の情報を記憶するために使用することができ、コンピューティングデバイス600がアクセスすることが可能なその他のどのような媒体でも含まれるが、それらに限定されるものではない。このようなコンピュータ読み取り可能記憶媒体はいずれもコンピューティングデバイス600の一部となり得る。コンピューティングデバイス600はまた、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、および同様の入力デバイスなどの入力デバイス612も有することができる。ディスプレイ、スピーカ、プリンタ、その他のタイプの出力デバイスなどの出力デバイス614も含まれ得る。これらのデバイスは当分野ではよく知られているので、ここで詳細に論じる必要はない。
【0049】
[0049]コンピューティングデバイス600はまた、デバイスが、分散コンピューティング環境における無線ネットワーク、衛星リンク、セルラリンク、および同様のメカニズムなどを介して他のデバイス618と通信できるようにする通信接続616も含むことができる。その他のデバイス618には、通信アプリケーションを実行するコンピュータデバイス、ストレージサーバ、および同様のデバイスが含まれ得る。通信接続616は、通信媒体の一例である。通信媒体は、コンピュータ読み取り可能指示、データ構造、プログラムモジュール、または搬送波やその他のトランスポートメカニズムなどの変調されたデータ信号中のその他のデータを含むことができ、また、通信媒体には任意の情報引渡し媒体が含まれる。「変調されたデータ信号」という用語は、その信号中の情報を符号化するようにその特性の1つまたは複数が設定または変更された信号を意味する。限定ではなく例示として、通信媒体には、有線ネットワークまたは有線直結接続などの有線媒体と、アコースティック、RF、赤外線、その他の無線媒体などの無線媒体とが含まれる。
【0050】
[0050]例示的実施形態は方法も含む。これらの方法は、本文書に記載する構造を始めとして多くの方法で実装することができる。このような方法のうち1つは、本文書に記載のタイプのデバイスのマシンオペレーションによるものである。
【0051】
[0051]別の任意の方法は、それらの方法の個々のオペレーションの1つまたは複数を、1人または複数の人間オペレータがいくつかのオペレーションを行うのと共に実行することである。これらの人間オペレータは互いに一緒に居る必要はなく、各々が、プログラムの一部を実行するマシンと共に居さえすればよい。
【0052】
[0052]
図7は、実施形態による、ウェブベース電子メールシステムにおいて対話構造を同期させるプロセス700の論理流れ図を示す。プロセス700は、任意のウェブベース電子メールサービスまたはアプリケーションによって実行することができる。
【0053】
[0053]プロセス700は、オペレーション710で開始することができ、オペレーション710では対話を列挙することができる。新規クライアントまたは長期不在の後サービスに参加したクライアントには、対話に関連付けられた電子メールや属性など、すべての対話情報を提供することができる。オペレーション720で、対話の詳細および状態をクライアントに提供することができる。対話は、対話識別子、名称、または同様の適切な属性によって識別することができる。
【0054】
[0054]オペレーション730で、クライアントから対話状態を受け取ることができる。ウェブベース電子メールサービスは、オペレーション740で、クライアントの対話状態に基づいて、クライアントに提供する対話の詳細を確定し、その詳細をクライアントに提供することができる。このサービスは、同時に、クライアントの状態を更新することができ、または、クライアントが自己の状態をローカルに更新することができる。
【0055】
[0055]実施形態のうちあるものは、通信モジュール、メモリ、プロセッサを含むコンピュータデバイスで実装することができ、この場合、プロセッサは、上記の方法または同様の方法を、メモリに記憶された指示に関連して実行する。また別の実施形態には、上記の方法または同様の方法を実行するための指示が記憶されたコンピュータ読み取り可能記憶媒体として実装できるものもある。
【0056】
[0056]プロセス700に含まれるオペレーションは、説明を目的としている。対話同期化を行うウェブベース電子メールサービスは、ステップがより少ない、または追加ステップを有する同様のプロセスによっても実装できるし、本明細書に記載の原理を使った、異なる順序のオペレーションによっても実装できる。
【0057】
[0057]上記の詳述、例、データは、実施形態の構成の製造および使用についての完全な説明を提供するものである。構造的特徴および/または方法論的動作に特有の専門用語で主題を説明してきたが、添付の特許請求の範囲で定義される主題は、必ずしも上記に説明した特有の特徴または動作に限定されるものではないことを理解されたい。むしろ、上記に説明した特有の特徴および動作は、特許請求の範囲および実施形態を実装する例示的形態として開示したものである。