(57)【要約】  アクションが非同期通信サービスと連動してユーザによってとられた後に適切なユーザ通知をサポートするための１セットのワークフローが提供される。通知のタイミングおよび／またはタイプ、あるいは、サービスによってとられるアクションが、失敗したユーザアクションの性質、アクションがとられてから経過した時間、複数アクションの依存性、デバイスタイプ、および、ユーザ体験を強化し混乱を減らす同様の特性のうちの１つまたは複数に基づいて判定される。
2014529150.tif 000002
【特許請求の範囲】
【請求項１】
通信システムにおける接続性損失(connectivity loss)による失敗応答(failure response)を提供するためのコンピューティングデバイスで少なくとも部分的に実行される方法であって、
通信アプリケーションのユーザインターフェースからユーザアクション(user action)を受信するステップと、
接続性損失によるサーバへの前記受信されたアクションの提供の失敗を判定する(determining)ステップと、
前記失敗のタイプ、他のアクションが前記受信されたアクションの成功に依存するかどうか、前記アクションが受信されたときからの時間、前記アクションが受信されたデバイス、前記アクションのユーザプロファイル、使用(usage)、タイプ、および円滑化される(facilitated)通信のタイプの１セット(a set)のうちの少なくとも１つに基づいて、失敗通知(failure notification)の表面化(surfacing)のタイミングおよびタイプを判定するステップと
を含む、方法。
【請求項２】
ローカルキャッシュで前記受信されたアクションを記憶するステップ
をさらに含む、請求項１に記載の方法。
【請求項３】
接続性(connectivity)を再確立(reestablishing)したときに前記サーバに前記記憶されたアクションをリプレイするステップ
をさらに含む、請求項２に記載の方法。
【請求項４】
音声警告(sound alert)、振動(vibration)警告、前記ユーザインターフェースのメインビュー(main view)での視覚的通知(visual notification)、情報を提供する(informative)電子メールメッセージおよび前記システムによって処理される(handled)ことになる事象(event)の１セットのうちの少なくとも１つを介して前記失敗通知(failure notification)を表面化する(surfacing)ステップ
をさらに含む、請求項１に記載の方法。
【請求項５】
前記失敗に関する詳細な情報を前記ユーザインターフェースのうちの１つを介しておよびメッセージを介して表示するステップであって、前記情報が、前記失敗に関連する通信、前記失敗の時間、前記失敗を緩和する(mitigate)ための１つまたは複数のユーザ任意選択(options)の１セットのうちから少なくとも１つを含む、ステップ
をさらに含む、請求項１に記載の方法。
【請求項６】
前記ユーザインターフェースが、ローカルデータストアからユーザアクションを読み取り、ローカルデータストアにユーザアクションを書き込み、前記サーバにアクションを書き込んで、接続性が再確立されるときに同期を維持するために、使用可能にされる、請求項１に記載の方法。
【請求項７】
接続性損失による失敗応答を提供するための通信システムであって、
ユーザアクションを受信するようにおよび失敗通知を表面化するように構成されたユーザインターフェースを管理する、クライアント制御モジュールと、
接続性損失(connectivity loss)によりサーバへの前記受信されたアクションの提供に失敗したことを判定するように構成された、接続管理(connection manager)モジュールと、
前記ユーザインターフェースのテンプレートの一群(collection)である、クライアントビュー(view)モジュールと、
前記ユーザインターフェースのアプリケーション論理(logic)を含むクライアントビューモデルであって、前記アプリケーション論理が、前記失敗のタイプ、他のアクションが前記受信されたアクションの成功に依存するかどうか、前記アクションが受信されたときからの時間、前記アクションが受信されたデバイス、前記アクションのユーザプロファイル、使用、タイプ、および円滑化される通信のタイプを含む複数の要因に基づいて、失敗通知の表面化のタイミングおよびタイプを判定するように構成された、クライアントビューモデルと、
前記受信されたユーザアクションを記憶するためのローカルキャッシュと
を備える、システム。
【請求項８】
前記クライアントビューモデルが、アプリケーション状態を維持する、請求項７に記載のシステム。
【請求項９】
前記アプリケーション論理がさらに、
前記アクションが局所的に完遂される(committed locally)ときにローカルウェブデータベーステーブルおよび固有(native)デバイスデータベーステーブルのうちの１つの中の待ち行列(queue)内で受信されたアクションを記憶する
ように構成された、請求項７に記載のシステム。
【請求項１０】
通信システム内で接続性損失による失敗応答を提供するためのそこに記憶された命令を有するコンピュータ可読メモリデバイスであって、前記命令が、
通信アプリケーションのユーザインターフェースからユーザアクションを受信するステップと、
接続性損失によるサーバへの前記受信されたアクションの提供の失敗を判定するステップと、
ローカルキャッシュで前記受信されたアクションを記憶するステップと、
前記失敗のタイプ、他のアクションが前記受信されたアクションの成功に依存するかどうか、前記アクションが受信されたときからの時間、前記アクションが受信されたデバイス、前記アクションのユーザプロファイル、使用、タイプ、および円滑化される通信のタイプを含む複数の要因に基づいて、失敗通知の表面化のタイミングおよびタイプを判定するステップと、
接続性を再確立したときに前記サーバに前記記憶されたアクションをリプレイするステップと
を備える、コンピュータ可読メモリデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明の一実施例は、例えば、再接続時の予期せぬ協調サーバ応答の通信に関する。
【背景技術】
【０００２】
[0001]電子メール、テキストメッセージング、および類似のものなどの非同期通信サービスは、個人的目的、事業目的、および他の目的での情報の交換を円滑化する日常生活の重要な一部である。非同期通信サービスは、通常は、１つまたは複数のネットワークを介して通信を管理する１つまたは複数のサーバを含み、そこで、ユーザは、シックまたはシンクライアントを介してサービスにアクセスする。シッククライアントは、周期的にまたは要望に応じてサーバと局所的に同期する機能性の大部分を実行する、局所的にインストールされたクライアントアプリケーションである。シンクライアントは、通常は、サーバによって制御されるユーザインターフェースを介して通信サービスへのアクセスを可能にするウェブブラウザなどの汎用アプリケーションであり、機能性の大部分はサーバベースである。
【０００３】
[0002]ネットワーク接続性が存在するとき、シックまたはシンクライアントはシームレスなユーザ体験を提供する。他方で、ネットワーク接続性が失われる場合、クライアントアプリケーションは、ユーザに機能のいくらかをやはり提供することができるが、サーバと同期することはできない。したがって、通信サービスのうちのいくつかは、中断されることがある。たとえば、電子メールメッセージが送信または検索できない、カレンダ項目が更新できない、など。いくつかの実装形態で、クライアントアプリケーションは、ネットワーク接続性がないときでも、普通に動作し、機能を実行し、接続性が回復された後には、ユーザアクションをリプレイすることができる。しかし、ネットワーク中断は、必ずしも短期間ではないことがある。その中断が比較的長い期間（たとえば、数時間または数日）続く場合、接続性の回復時のユーザアクションのリプレイ、または、接続性の回復時のユーザアクションのリプレイでのエラーは、ユーザの混乱をもたらし得る。たとえば、スケジュールされた予定が、それのスケジュールされた時間が経過した後にユーザに提供されることがある。いくつかの従来のシステムは、中断がある度にユーザに警告し、これはユーザ体験を悪化させることがある。他のシステムは、どの失敗も報告せず、これはユーザが通信システムにおける信頼性を損なうなどのより悪い状態をもたらし得る。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本願発明の一実施例は、例えば、再接続時の予期せぬ協調サーバ応答の通信に関する。
【課題を解決するための手段】
【０００５】
[0003]本概要は、「発明を実施するための形態」で以下にさらに説明される概念の選択を簡易化された形で紹介するために提供される。本概要は、特許請求されている対象の重要な特徴または本質的特徴を排他的に識別するものではなく、特許請求されている対象の範囲を判定する際の助けとして意図されていない。
【０００６】
[0004]実施形態は、アクションが非同期通信サービスと連動してユーザによってとられた後に適切なユーザ通知をサポートするためのワークフローの１セットを対象とする。通知またはそのサービスによってとられるアクションのタイミングおよび／またはタイプは、失敗したユーザアクションの性質、アクションがとられてから経過した時間、複数アクションの依存性、デバイスタイプ、およびユーザ体験を向上させ混乱を減らす同様の特性のうちの１つまたは複数に基づいて判定され得る。
【０００７】
[0005]これらのおよび他の特徴および利点は、以下の詳細な説明を読むことおよび関連図面の再考から明らかになろう。前述の概要および以下の詳細な説明の両方は例示的であり、特許請求されるものとしての態様を限定しないことを理解されたい。
【図面の簡単な説明】
【０００８】
【図１】[0006]実施形態が実装され得る、非同期通信サービスを円滑化するための例示的システムの図である。
【図２】[0007]実施形態による例示的ウェブベースの電子メールサービスアーキテクチャの図である。
【図３】[0008]実施形態による通信サービス内の例示的アクションの流れを示す図である。
【図４】[0009]実施形態によるオフラインサポートを有する例示的システムのアーキテクチャの図である。
【図５】[0010]実施形態によるオフラインアクション通知のサポートを有する電子メールサービスの例示的ユーザインターフェースの図である。
【図６】[0011]実施形態によるシステムが実装され得るネットワーク環境の図である。
【図７】[0012]実施形態が実装され得る例示的コンピューティング動作環境のブロック図である。
【図８】[0013]実施形態による再接続時に予期せぬ協調サーバ応答を通信するプロセスのための論理流れ図である。
【発明を実施するための形態】
【０００９】
[0014]前述で簡単に説明されたように、適切なユーザ通知は、アクションが非同期通信サービスと連動してユーザによってとられた後に、そして特に、そのアクションがサーバに正しくリプレイすることに失敗したときに、提供され得る。ネットワーク接続性が中断されたときにユーザアクションに応答して実行されることになる通知およびタスクは、所定の基準と局所的にキャッシュに格納された作成／修正されたデータの少なくとも一部とに基づいて判定され得る。通知またはそのサービスによってとられるアクションのタイミングおよび／またはタイプは、失敗したユーザアクションの性質、アクションがとられたときから経過した時間、複数アクションの依存性、デバイスタイプ、およびユーザ体験を向上させ混乱を減らす同様の特性のうちの１つまたは複数に基づいて判定され得る。
【００１０】
[0015]以下の詳細な説明で、本明細書の一部を成す、添付の図面が参照され、その中で特定の実施形態または例が例証として示される。本開示の趣旨および範囲を逸脱することなしに、これらの態様は結合させることができ、他の態様が使用可能であり、構造的変更が行われ得る。したがって、以下の詳細な説明は、制限的な意味でとらえるべきではなく、本発明の範囲は、添付の特許請求の範囲およびそれらの同等物によって定義される。
【００１１】
[0016]実施形態は、コンピューティングデバイス上のオペレーティングシステムで稼働するアプリケーションプログラムと連動して実行するプログラムモジュールとの一般的関連で説明されるが、態様はまた、他のプログラムモジュールとの組合せで実装され得ることが、当業者には理解されよう。
【００１２】
[0017]一般に、プログラムモジュールは、ルーチン、プログラム、構成要素、データ構造体、および、特定のタスクを実行するまたは特定の抽象データタイプを実装する他のタイプの構造体を含む。さらに、実施形態は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのもしくはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ、および、類似のコンピューティングデバイスを含む、他のコンピュータシステム構成で実施され得ることが、当業者には理解されよう。実施形態はまた、タスクが通信ネットワークを介してリンクされた遠隔処理デバイスによって実行される分散型コンピューティング環境で実施され得る。分散型コンピューティング環境で、プログラムモジュールは、ローカルおよび遠隔の両方の記憶貯蔵デバイス内に置かれ得る。
【００１３】
[0018]実施形態は、コンピュータ実装のプロセス（方法）、コンピューティングシステムとして、または、コンピュータプログラム製品もしくはコンピュータ可読媒体などの製造品として、実装することができる。そのコンピュータプログラム製品は、コンピュータシステムによって可読の、および、コンピュータもしくはコンピューティングシステムに例示的プロセス（複数可）を実行させるための命令を備えるコンピュータプログラムを符号化する、コンピュータ記憶媒体でもよい。そのコンピュータ可読記憶媒体は、たとえば、揮発性コンピュータメモリ、不揮発性メモリ、ハードドライブ、フラッシュドライブ、フロッピディスク、またはコンパクトディスク、および類似の媒体のうちの１つまたは複数を介して実装することができる。
【００１４】
[0019]本明細書をとおして、「プラットフォーム」という用語は、電子メールまたはテキストメッセージングなどの非同期通信サービスを提供するためのソフトウェアおよびハードウェア構成要素の組合せでもよい。プラットフォームの例は、複数のサーバを介して実行されるホスト型サービス、単一のコンピューティングデバイスで実行されるアプリケーション、および類似のシステムを含むが、これらに限定されない。「サーバ」という用語は、一般に、通常はネットワーク化された環境で１つまたは複数のソフトウェアプログラムを実行するコンピューティングデバイスを指す。しかし、サーバはまた、ネットワーク上のサーバと見なされる１つまたは複数のコンピューティングデバイスで実行される仮想サーバ（ソフトウェアプログラム）として実装することができる。これらの技術および例示的動作のさらなる詳細が、以下に提供される。本明細書では、「アクション」という用語は、ユーザインターフェース要素の選択／起動またはユーザインターフェースを介する入力の提供などの通信アプリケーションとのユーザ対話を指す。「タスク」という用語は、ユーザに通信サービスを提供する際の「アクション」または他の事象に応答してシステムによって実行される動作を指す。
【００１５】
[0020]図１は、図表１００で、実施形態が実装され得る非同期通信サービスを円滑化するための例示的システムを示す。通信サービス１０２は、スケジューリングサービス（カレンダ）、連絡先、タスクリスト、および類似のものなどの補助的な機能とともに、電子メール交換、テキストメッセージ交換、および同様のものなどのサービス非同期通信を円滑化することができる。通信サービス１０２は、ネットワーク（複数可）１１０を介してクライアントアプリケーション１０４、１０６と対話して通信の交換を円滑化することができる。
【００１６】
[0021]クライアントアプリケーション１０４、１０６は、シックまたはシンクライアントでもよい。シッククライアントは、周期的にまたは要望に応じてサーバと局所的に同期する機能性の大部分を実行する局所的にインストールされたクライアントアプリケーションである。シンクライアントは、通常は、サーバによって制御されるユーザインターフェースを介して通知サービスへのアクセスを可能にするウェブブラウザなどの汎用アプリケーションであり、その機能性の大半はサーバベースである。いずれの場合にも、クライアントアプリケーションの機能性は、通信サービス１０２への接続性に依存する。
【００１７】
[0022]クライアントアプリケーションは、たとえば、特に携帯デバイスで、電子メール、カレンダまたは電子メール交換サービスの連絡先機能を提供するときにネットワーク（複数可）１１０から切り離され得る。ユーザがとるアクションは、接続性がユーザの介入なしに回復された後には、リプレイすることができる。しかし、切断期間は、数秒、数分、数時間または数日でもよい。アクションが完全にまたは部分的にリプレイすることに失敗した場合、そのリプレイの失敗をユーザに指示するかどうかおよびどのように指示するかが課題である。
【００１８】
[0023]実施形態によるシステムでは、失敗通知が提供可能であり、失敗したアクションに関連するタスクが失敗のタイプもしくは性質、失敗の時間、アプリケーションもしくはデバイスのタイプなどのいくつかの所定の基準に基づいて実行される。そのアクションは、メッセージの送信／削除／修正、カレンダもしくは連絡先項目の作成／削除／修正、または、項目のプロパティの作成／削除／修正を含み得るが、これらに限定されない。したがって、アクションのリプレイの失敗の検出に応答して、実施形態によるシステムは、１つまたは複数の基準を適用し、通知（通知のタイプ、タイミング、形式）の提供を含むタスクを実行することができる。作成／修正されたデータのうちのいくらかはまた、その基準に基づいて局所的にキャッシュに格納され得る。
【００１９】
[0024]図２は、図表２００に実施形態による例示的なウェブベースの電子メールサービスアーキテクチャを示す。
[0025]いくつかの実施形態によれば、ユーザが彼らのクライアントアプリケーション内でオフラインで作業する能力を選択する場合、そのアプリケーションは、ローカルデータストア（クライアントキャッシュ２２２）を作成して、そのアプリケーションに関連する項目、たとえば電子メールアプリケーションにおける電子メール、カレンダおよび連絡先、を記憶して、そのアプリケーションが切断されている間に機能をサポートすることができる。そのアプリケーションが接続されているとき、ユーザインターフェースは、ローカルデータストアからユーザアクションを読み取るおよびローカルデータストアにユーザアクションを書き込むことができ（両方の性能のために、およびそれを最新に保つために）、ローカルデータストアおよびサーバ（通信サービス２２０）の両方にアクションを書き込み、同期を維持することができる。局所的に書き込むにはあまりに資源集約的であり得る任意のアクションについて、データ同期構成要素は、増分のサーバ変更をローカルデータストアに直接コピーすることができる。
【００２０】
[0026]実施形態によるシステム内の他の主要な機能的構成要素は、リストビュー、テキストボックス、エディタなどの要素を管理するクライアント制御２１４と、基本制御の合成であるテンプレートの一群であるクライアントビュー２１２と、アプリケーション論理を含むクライアントビューモデル２１６と、データ管理プログラム、カレンダ、フォルダ、連絡先などを含むクライアントモデル２１８とを含み得る。
【００２１】
[0027]前述のように、クライアントビューモデル２１６は、ユーザインターフェース固有のアプリケーション論理を含み、アプリケーション状態を保持することができる。いくつかの実施形態によれば、クライアントビューモデル２１６は、ユーザインターフェースの知識を有さなくてもよく、その状態はプロパティおよびコマンドバインディングを介して露呈され得る。クライアントモデル２１８での変更でユーザアクションに応答する責任は、この層内に属し得る。
【００２２】
[0028]クライアントビュー２１２は、ユーザ体験インターフェースに結合して、そのユーザインターフェース内でクライアントビューモデル２１６の反射のように動作することができる。データ結合は、クライアントビュー２１２と下層の間の通信のための主要な機構である。基本制御を備えるテンプレートの一群であるクライアントビュー２１２は、クライアントビューモデル２１６への１：１マッピングを有し得る。クライアントビュー２１２とクライアントビューモデル２１６の間を結合させるデータを使用する構成は、テンプレートを使用するビューモデルのビュー全体の作成を可能にし得る。図表２００に示すものとしてのシステムで、通知２２６は、通信サービス２２０からクライアント制御２１４に向かって流れることができ、一方、事象はクライアント制御２１４から通信サービス２２０またはクライアントキャッシュ２２２の方へ流れる。
【００２３】
[0029]図３は、図表３００内に実施形態による通信サービスの例示的アクション流れを示す。実施形態によるシステムで、アクション３３４は、前述のようにビューモデル３３２を介して取得され得る。
【００２４】
[0030]通信アプリケーションが接続されるとき、ユーザインターフェースは、ローカルデータストア（クライアントストアプロキシ３３６）からユーザアクションを読み取るおよびそこにユーザアクションを書き込んで、そして、そのローカルデータストアおよびサーバの両方にアクションを書き込んで同期を維持することができる。アプリケーションが接続性を失うとき、アクション３３４は、接続性が回復されるまで、局所的に完遂され得る。接続性が回復された後には、これらのアクションをそのサーバに反映させるために、アクション３３４は、それらが局所的に完遂されるのと同時にローカルウェブデータベーステーブルまたは固有デバイスデータベーステーブル内の待ち行列（待ち行列型プロキシ３４４）内に記憶され得る。いくつかの実施形態で、集合プロキシ３４０は、クライアントストアプロキシ３３６とそのサーバのオンラインプロキシ３４２の間で使用することができる。その流れは、直接に集合プロキシ３４０からオンラインプロキシ３４２にまたは待ち行列型プロキシ３４４を介してでもよい。そのデバイスが接続性を再取得するときには必ず（接続性管理プログラムなど、別個のプロセスによって判定されるように）、そのアクションは、サーバに（オンラインプロキシ３４２に）プレイバックされ得る。
【００２５】
[0031]サーバがそのアクションを処理することができない場合、そのサーバは失敗応答を返すことができる。その失敗応答は、アクション管理プログラムアーキテクチャで応答プロセッサ３３０に渡され得る。応答プロセッサ３３０は、いくつかの要因に基づいてユーザにその失敗を表面化するかまたはどのように表面化するかをユーザインターフェースコードが選択することを可能にするために、情報を提供することができる。これらの要因の各々に関するデータは、失敗応答で応答プロセッサに返すことができる。その要因は、失敗のタイプ、他のアクションがこのアクションの成功に依存するかどうか、アクションがとられたときからの時間、アクションがとられたデバイス、アクションのユーザプロファイルおよび／または使用、通信方法（たとえば、電子メール対テキストメッセージ交換）、あるいは性質を含み得るが、これらに限定されない。たとえば、ユーザ自身の時間にかかわるカレンダ項目の作成／修正／削除は、そのカレンダ項目が他のユーザに同様にかかわるとき（たとえば、会議）よりも重大ではないことがある。短期間の切断は、ユーザに透過的であることがあり（たとえば、カレンダまたは連絡先項目関連アクションについて）、一方、長期間の切断は、計画、通信、分析などに関して重要性を有することがある。
【００２６】
[0032]いくつかの例示的実装形態で、失敗のタイプは、新しいメッセージまたは会議の要求などの高投資顧客内容、連絡先での電話番号の追加または変更などの低投資顧客内容、メッセージの削除または異なるフォルダへの移動などの項目全体のプロパティの変更、および、既読として項目にフラグを設定することまたは印を付けることなどの項目内の単一プロパティの変更を含み得る。
【００２７】
[0033]特定のアクションの成功への他のアクションの依存性は、アドレスがその組織内に存在しない受信者を有するメッセージでもよい。送信は成功し得るが、その単一の受信者のアドレス名解決は失敗し得る。他のアクションが依存する単一の失敗の場合、すべての関連アクションのロールバックが実行可能であり、または、他のアクションが進行することが許可され、このアクションのみの失敗を返すことが可能である。したがって、応答プロセッサ３３０は、接続性が回復されるときには必ずサーバから、成功または失敗応答に応じて反応するための、そして、関連または依存するアクションの成功または失敗応答に依存する、コードを呼び出すことができ、その時点でアクションがリプレイされ得る、再び待ち行列に入れられ得る、または消去され得る（無視され得る）。
【００２８】
[0034]図４は、図表４００に実施形態によるオフラインサポートを有する例示的システムのアーキテクチャを示す。
[0035]ユーザインターフェース４５２は、ユーザとの対話を可能にし、ビューおよびビューモデルオブジェクトを含むシステムの最上層である。ユーザインターフェース層４５２から受信されるメッセージへの応答、項目プロパティの変更、プロパティの削除、メッセージの読取りなどのアクション４５８は、ユーザインターフェース層４５２にフィードバックするユーザインターフェースデータ限界オブジェクト４５６のために使用され得る。アクション４５８およびデータ限界オブジェクト４５６は、モデル層４５４内（クライアント側）にある。
【００２９】
[0036]サーバ側では、持続データアクセス層４６０は、アクションディスパッチャ４６４および同期管理プログラム４６２を含み得る。アクションディスパッチャ４６４は、そのアクションを受信することができる（たとえば、アクション要求コールを使用して）。アクションは、オンラインおよびオフラインビジネス論理およびデータストアに提供可能であり、アクション（ユーザインターフェースの）に応答したタスクがそこから受信される。同期管理プログラム４６２は、オンライン状態とオフライン状態の間のアクションおよび失敗応答の同期を円滑化することができる。
【００３０】
[0037]オンラインビジネス論理４６８は、フォルダ、メッセージ、添付物、カレンダ、連絡先、および、通信サービスに関連する同様の項目を含み得る。オンラインビジネス論理４６８はまた、それらの項目のビュー、ならびに、フォルダ同期論理、通知論理、およびプロパティスキーマ論理を含み得る。オンラインストア４７０は、フォルダ、メッセージ、および添付物、ならびに、それらのビューを記憶することができる。オンラインストア４７０はさらに、インターフェース同期、通知、およびプロパティスキーマを含み得る。オンラインビジネス論理の４７２の物理層抽象化は、索引、テーブル、およびコラムを含むことができ、リレーショナルデータベースまたはその他などのデータベースとの対話を可能にすることができる。
【００３１】
[0038]オフラインビジネス論理およびストアの組合せ４６６は、フォルダ、メッセージ、添付物、カレンダ、連絡先、および同様のものに送り込む項目、ならびに、前記のビューを含み得る。オフラインビジネス論理およびストアの組合せ４６６はさらに、通知と、ビューと、持続およびアップロードアクションとを含み得る。オフラインビジネス論理の４７４の物理層抽象化はまた、索引、テーブル、およびコラムを含むことができ、ウェブリレーショナルデータベース、索引付きデータベース、またはその他などのデータベースとの対話を可能にすることができる。
【００３２】
[0039]図１から４の例示的システムは、特定の構成、アプリケーション、および対話を用いて説明されている。実施形態は、これらの例によるシステムに限定されない。クラウドサービスの性能をモニタリングするための適応型モニタリングシステムを提供するためのシステムは、より少数のまたは追加の構成要素を使用するおよび他のタスクを実行する構成で実装され得る。さらに、特定のプロトコルおよび／またはインターフェースが、本明細書に記載の原理を使用し、同様の形で実装され得る。
【００３３】
[0040]図５は、実施形態によるオフラインアクション通知のサポートを有する電子メールサービスの例示的ユーザインターフェースを示す。失敗に関するユーザ通知は、任意の通信アプリケーションユーザインターフェースを介する様々な方法で提供することができ、図５の例示的ユーザインターフェース５００は、例示のみを目的とする。
【００３４】
[0041]実施形態によるシステムで、ユーザ体験は、いくつかの実施形態によるいくつかの特徴を介して向上させることができる。たとえば、ユーザ体験を与えるためのコードは、前述の要因の評価に基づいてユーザにエラーを表面化するかおよびどのように表面化するかを決定し、アクション管理プログラムアーキテクチャによって応答プロセッサに返され得る。そのユーザ体験は、最も侵略的な、注目を集めるものから最もそうでないものまでの（それぞれ、最も重大な失敗から最も重大ではない失敗に対応し得る）順番で、応答プロセッサによって提供されるデータに基づいて以下の手法のうちの１つを選択することができる。
【００３５】
[0042]通知は、テキストメッセージまたはカレンダ通知を受信するときに（このタイプの通知の表面化をサポートするデバイスで）、ユーザ体験と同様の音声または振動を介して表面化され得る。情報は、デバイスのメイン画面にまたはウェブベースのアプリケーションユーザインターフェース（たとえば、ウェブベースの電子メールアプリケーション）のメインビューに表示され得る。その情報はまた、ユーザのインボックスに追加されたメッセージ内に詳述され得る。
【００３６】
[0043]例示的ユーザインターフェース５００は、電子メールアプリケーションの「下書き」フォルダを提示する。ユーザインターフェース要素５８２は、ユーザがすべてのフォルダのリスティングに戻ることを可能にする。簡潔な状況更新５８４が、ユーザにそのローカル版が更新された最後の時間を指示する。前述のように、視覚的通知５８６は、失敗の性質をユーザに強調することができる。視覚的通知５８６は、特定の音声などの音声通知５８８と同時に起こり得る。他の実施形態で、失敗に関連する通信、その失敗の時間、その失敗を緩和するためのユーザオプションなどの失敗に関するより詳細な情報もまた、ユーザインターフェース構成、使用可能な画面スペース、デバイスタイプなどに応じて表示され得る。
【００３７】
[0044]図６は、実施形態が実装され得る例示的なネットワーク化された環境である。再接続時に予期せぬ協調サーバ応答を通信するためのシステムが、ホスト型サービスなどの１つまたは複数のサーバ６１４を介して実行されるソフトウェアを介して実装され得る。プラットフォームは、ネットワーク（複数可）６１０を介して、スマートフォン６１３、ラップトップコンピュータ６１２、またはデスクトップコンピュータ６１１などの個々のコンピューティングデバイス（「クライアントデバイス」）でクライアントアプリケーションと通信することができる。
【００３８】
[0045]クライアントデバイス６１１〜６１３のいずれかで実行されるクライアントアプリケーションは、サーバ６１６によって実行されるアプリケーション（複数可）を介してまたは個々のサーバ６１６で通信を円滑化することができる。それらのサーバのうちの１つで実行される通信アプリケーションは、ユーザへの失敗通知の提供と、前述のような所定の基準に基づく適切なタスクの実行とを円滑化することができる。そのアプリケーションは、直接にデータストア（複数可）６１９からまたはデータベースサーバ６１８を介して関連データを検索し、要求されたサービスをクライアントデバイス６１１〜６１３を介してユーザ（複数可）に提供することができる。
【００３９】
[0046]ネットワーク（複数可）６１０は、サーバ、クライアント、インターネットサービスプロバイダ、および通信媒体の任意の接続形態を備え得る。実施形態によるシステムは、静的または動的接続形態を有し得る。ネットワーク（複数可）６１０は、企業ネットワークなどの安全なネットワーク、ワイヤレスオープンネットワークなどの安全ではないネットワーク、または、インターネットを含み得る。ネットワーク（複数可）６１０はまた、公衆交換電話網（ＰＳＴＮ）またはセルラネットワークなどの他のネットワークを介して通信を調整することができる。さらに、ネットワーク（複数可）６１０は、ブルートゥースまたは同様のものなどの短距離ワイヤレスネットワークを含み得る。ネットワーク（複数可）６１０は、本明細書に記載のノードの間で通信を提供する。例として、そして限定ではなく、ネットワーク（複数可）６１０は、音波、ＲＦ、赤外線および他のワイヤレス媒体などのワイヤレス媒体を含み得る。
【００４０】
[0047]多数の他の構成のコンピューティングデバイス、アプリケーション、データソース、およびデータ分散システムが、ネットワーク接続性の中断による失敗通知を通信サービスに提供するためのプラットフォームを実装するために使用され得る。さらに、図５で論じられるネットワーク化された環境は、例示のみを目的とする。実施形態は、それらの例示的アプリケーション、モジュール、またはプロセスに限定されない。
【００４１】
[0048]図７および関連する論考は、実施形態が実装され得る適切なコンピューティング環境の簡潔な、一般的な説明を提供するものである。図７を参照すると、コンピューティングデバイス７００など、実施形態によるアプリケーションの例示的コンピューティング動作環境のブロック図が示される。基本的構成で、コンピューティングデバイス７００は、実施形態による接続性関連失敗通知を提供する通信アプリケーションを実行するサーバなどの任意のコンピューティングデバイスでもよく、少なくとも１つの処理ユニット７０２およびシステムメモリ７０４を含み得る。コンピューティングデバイス７００はまた、プログラムの実行で協力する複数の処理ユニットを含み得る。コンピューティングデバイスの実際の構成およびタイプに応じて、システムメモリ７０４は、揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュメモリなど）またはその２つの何らかの組合せでもよい。システムメモリ７０４は、通常は、Ｗａｓｈｉｎｇｔｏｎ州ＲｅｄｍｏｎｄのＭＩＣＲＯＳＯＦＴ  ＣＯＲＰＯＲＡＴＩＯＮのＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムなどのプラットフォームの動作を制御するのに適したオペレーティングシステム７０５を含む。システムメモリ７０４はまた、通信サービス７２４および同期管理プログラムモジュール７２６などの１つまたは複数のソフトウェアアプリケーションを含み得る。
【００４２】
[0049]通信アプリケーション７２４が接続性を失うとき、アクションは、接続性が回復されるまで局所的に完遂され得る。クライアントデバイスが接続性を回復するときには必ず、そのアクションがサーバにプレイバックされ得る。そのサーバがそのアクションを処理することができない場合、そのサーバは失敗応答を返すことができる。同期管理プログラムモジュール７２６は、いくつかの要因に基づいてユーザにその失敗をどのように表面化するかを判定することができる。その要因は、失敗のタイプ、他のアクションがこのアクションの成功に依存するかどうか、アクションがとられたときからの時間、または、そのアクションがとられたデバイスを含み得るが、これらに限定されない。この基本構成は、破線７０８内のそれらの構成要素によって図７に示される。
【００４３】
[0050]コンピューティングデバイス７００は、追加の特徴または機能を有し得る。たとえば、コンピューティングデバイス７００はまた、たとえば、磁気ディスク、光ディスク、またはテープなどの追加のデータ記憶デバイス（取外し可能なおよび／または取外し不能な）も含み得る。そのような追加の記憶装置は、取外し可能な記憶装置７０９および取外し不能な記憶装置７１０によって図７に示される。コンピュータ可読記憶媒体は、コンピュータ可読命令、データ構造体、プログラムモジュール、または他のデータなどの情報の記憶のための任意の方法または技術で実装された、揮発性および不揮発性の、取外し可能なおよび取外し不能な媒体を含み得る。システムメモリ７０４、取外し可能な記憶装置７０９および取外し不能な記憶装置７１０は、すべてコンピュータ可読記憶媒体の例である。コンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光記憶装置、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置デバイス、または所望の情報を記憶するために使用することができるおよびコンピューティングデバイス７００によってアクセスすることができる任意の他の媒体を含むがこれらに限定されない。任意のそのようなコンピュータ可読記憶媒体は、コンピューティングデバイス７００の部分でもよい。コンピューティングデバイス７００はまた、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、および、類似の入力デバイスなどの入力デバイス（複数可）７１２を有し得る。ディスプレイ、スピーカ、プリンタおよび他のタイプの出力デバイスなどの出力デバイス（複数可）７１４もまた含まれ得る。これらのデバイスは、当技術分野ではよく知られており、ここで長く論じられる必要はない。
【００４４】
[0051]コンピューティングデバイス７００はまた、分散型コンピューティング環境、衛星リンク、セルラリンク、短距離ネットワーク、および類似の機構でワイヤードまたはワイヤレスネットワークを介するなどして、他のデバイス７１８とそのデバイスが通信できるようにする通信接続７１６を含み得る。他のデバイス７１８は、通信アプリケーション、ウェブサーバ、および類似のデバイスを実行するコンピュータデバイス（複数可）を含み得る。通信接続（複数可）７１６は、通信媒体の一例である。通信媒体は、その中に、コンピュータ可読命令、データ構造体、プログラムモジュール、または他のデータを含み得る。例として、そして限定ではなく、通信媒体は、ワイヤードネットワークまたは直接ワイヤード接続などのワイヤード媒体と、音波、ＲＦ、赤外線および他のワイヤレス媒体などのワイヤレス媒体とを含む。
【００４５】
[0052]例示的実施形態はまた、方法を含む。これらの方法はまた、本明細書に記載の構造体を含む、任意の数の方法で実装され得る。１つのそのような方法は、本明細書に記載のタイプのデバイスの機械動作による。
【００４６】
[0053]もう１つの任意選択の方法は、何らかを実行する１人または複数の人間のオペレータと連動して実行されることになる本方法の個々の動作のうちの１つまたは複数についてである。これらの人間のオペレータは、互いに一緒に並ばされる必要はないが、各々がプログラムの一部を実行する機械のみとともにあってよい。
【００４７】
[0054]図８は、実施形態による再接続時に予期せぬ協調サーバ応答を通信するプロセスのための論理流れ図である。プロセス８００は、ネットワーク接続性が失われるときにユーザに失敗応答を提供する通信システム内で実装され得る。
【００４８】
[0055]プロセス８００は、項目（メッセージ、予定、連絡先、プロパティ）の作成／削除／修正などのユーザアクションがユーザインターフェースを有するユーザの対話を介して検出され得る動作８１０で開始する。そのユーザインターフェースは、アクションを検出するおよびそのユーザに応答を提供する際のデータ結合を介して対話するビューおよびビューモデル構成要素によって補完され得る。
【００４９】
[0056]任意選択の動作８２０で、そのアクションは、サーバに提供され、ネットワーク接続性損失の場合のバックアップとしてローカルキャッシュで記憶され得る。アプリケーションが接続性を失うとき、アクションは、接続性が回復されるまで局所的に完遂され得る。接続性が回復された後は、これらのアクションをサーバに反映させるために、そのアクションは、それらが局所的に完遂されると同時に、ローカルウェブデータベーステーブル内の待ち行列でまたは固有デバイスデータベーステーブルで記憶され得る。
【００５０】
[0057]動作８３０で、応答プロセッサは、１つまたは複数の要因に基づいてユーザに失敗応答をいつ表面化するかおよびどのように表面化するか（ユーザインターフェースを介して）を判定することができる。サーバがそのアクションを処理することができない場合、そのサーバは失敗応答を返すことができる。その失敗応答は、アクション管理プログラムアーキテクチャで応答プロセッサに渡すことができる。その応答プロセッサは、いくつかの要因に基づいてユーザにその失敗を表面化するかおよびどのように表面化するかをそのユーザインターフェースコードが選択することを可能にするために、情報を提供することができる。これらの要因の各々に関するデータは、応答プロセッサに失敗応答で返すことができる。その要因は、失敗のタイプ、他のアクションがこのアクションの成功に依存するかどうか、アクションがとられたときからの時間、または、そのアクションがとられたデバイスを含み得るが、これらに限定されない。
【００５１】
[0058]任意選択の動作８４０で、そのアクションは、ネットワーク接続性の回復時にリプレイされ得る。そのアプリケーションが接続されるとき、ユーザインターフェースは、ローカルデータストアからユーザアクションを読み取るおよびローカルデータストアにユーザアクションを書き込み（両方の性能のためにおよびそれを最新に保つために）、そのローカルデータストアおよびそのサーバの両方にアクションを書き込んで同期を維持することができる。
【００５２】
[0059]プロセス８００に含まれる動作は、説明を目的とする。再接続時に予期せぬ協調サーバ応答を通信するためのプロセスは、より少数のまたは追加のステップを有する同様のプロセスによって、ならびに、本明細書に記載の原理を使用する動作の異なる順序で、実装され得る。
【００５３】
[0060]前述の仕様、例およびデータは、実施形態の合成の製造および使用の完全な説明を提供する。本主題は構造的特徴および／または方法論的動作に特有の言語で説明されているが、添付の特許請求の範囲で定義される本主題は、前述の特定の特徴または動作に必ずしも限定されないことを理解されたい。そうではなくて、本明細書に記載の特定の特徴および動作は、本特許請求の範囲および実施形態を実装する例示的形として開示される。
【図１】
2014529150.tif 000003
【図２】
2014529150.tif 000004
【図３】
2014529150.tif 000005
【図４】
2014529150.tif 000006
【図５】
2014529150.tif 000007
【図６】
2014529150.tif 000008
【図７】
2014529150.tif 000009
【図８】
2014529150.tif 000010
【国際調査報告】
2014529150.tif 000011
2014529150.tif 000012