(57)【要約】  コミュニケーションおよびスケジューリング（CS）サービスと顧客関係管理（CRM）アプリケーションとの間の同期化は、同期化状態を追跡するために、拡張マークアップ言語（XML）フォーマット対応ストレージを使用して、ＣＳサービス側での同期化モジュールを介して容易にされる。アイテムのＣＲＭサーババージョンは、ＣＳサービスアイテムに対して実行された変更および同一を検出するために、ＸＭＬフォーマット対応ストレージと比較される。更新は、ＣＳサービスアイテム内に記憶されるか、または対応するＣＲＭアイテムへの適用のためにＣＲＭアプリケーションに送信される。矛盾する場合は、最後に更新されたアイテムが選択される。
2015537275.tif 000002
【特許請求の範囲】
【請求項１】
コミュニケーションおよびスケジューリング（CS）サービスと顧客関係管理（CRM）アプリケーションとの間でアイテムを双方向に同期するための、コンピューティングデバイス上で実行される方法であって、
前記ＣＳサービスのウェブサービスを介して、ＣＳサービスアイテムに対する更新を受信すること、
前記更新を前記ＣＳサービスアイテムに適用し、前記更新をＣＳサービスキャッシュに記憶すること、
前記更新を前記ＣＲＭアプリケーションに送信すること、
前記ＣＳサービスアイテムに関連付けられた、更新されたＣＲＭアイテムについて、前記ＣＲＭアプリケーションに照会すること、
前記更新されたＣＲＭアイテムを、前記ＣＳサービスアイテムに関する他の更新として取り出すこと、および、
前記他の更新を前記ＣＳサービスアイテムに適用すること、
を含む、方法。
【請求項２】
前記ＣＳサービスアイテムに対する前記他の更新を、前記ＣＳサービスキャッシュに記憶すること、
をさらに含む、請求項１に記載の方法。
【請求項３】
拡張マークアップ言語（XML）フォーマット対応ストレージを前記ＣＳサービスキャッシュとして採用すること、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記更新および前記他の更新を、前記ＣＳサービスアイテムの以前の状態としてＸＭＬファイル内に記憶すること、
をさらに含む、請求項１に記載の方法。
【請求項５】
前記ＣＲＭアプリケーションを照会するため、および、前記他の更新を受信するために、前記ウェブサービスを使用すること、
をさらに含む、請求項１に記載の方法。
【請求項６】
カスタムアプリケーションプログラミングインターフェース（API）および標準ＡＰＩのうちの少なくとも１つを、前記ウェブサービスとして提供すること、
をさらに含む、請求項１に記載の方法。
【請求項７】
コミュニケーションおよびスケジューリング（CS）サービスと顧客関係管理（CRM）アプリケーションとの間でアイテムを双方向に同期するための、コンピューティングデバイスであって、
メモリと、
前記メモリに結合されたプロセッサと、を備え、
前記プロセッサは、前記ＣＳサービスおよび前記ＣＳサービスに統合されたＣＲＭモジュールを実行し、
前記ＣＲＭモジュールは、
前記ＣＳサービスのウェブサービスを介して、ＣＳサービスアイテムに対する更新を受信すること、
拡張マークアップ言語（XML）フォーマット対応ストレージをＣＳサービスキャッシュとして採用すること、
前記更新を前記ＣＳサービスアイテムに適用し、前記更新を前記ＣＳサービスキャッシュに記憶すること、
前記更新を前記ＣＲＭアプリケーションに送信すること、
前記ＣＳサービスアイテムに関連付けられた、更新されたＣＲＭアイテムについて、前記ＣＲＭアプリケーションに照会すること、
前記更新されたＣＲＭアイテムを、前記ＣＳサービスアイテムに関する他の更新として取り出すこと、
前記他の更新をＣＳサービスアイテムに適用し、前記他の更新を前記ＣＳサービスキャッシュに記憶すること、ならびに、
前記更新および前記他の更新を、前記ＣＳサービスアイテムの以前の状態として構造化ファイル内に記憶すること、
を実行するように構成される、コンピューティングデバイス。
【請求項８】
前記ＣＲＭモジュールは、
前記ＣＳサービスアイテムにおける変更、および同期化に関してマーク付けされた前記ＣＳサービスアイテムに関する通知のうちの、１つを検出すること、および、
同期化についてクライアントアプリケーションから要求を受信すること、
のうちの１つに応答して、前記ＣＲＭアプリケーションに照会するようにさらに構成される、
請求項７に記載のコンピューティングデバイス。
【請求項９】
前記ＣＲＭモジュールは、
前記ＣＳサービスアイテムに対する前記更新および前記他の更新を管理するために、並列コンピューティングを使用してマルチスレッドプロセスを実行するようにさらに構成される、
請求項７に記載のコンピューティングデバイス。
【請求項１０】
コミュニケーションおよびスケジューリング（CS）サービスと顧客関係管理（CRM）アプリケーションとの間でアイテムを双方向に同期するための命令が記憶された、コンピュータ読み取り可能メモリデバイスであって、
前記命令は、
前記ＣＳサービスのウェブサービスを介して、代行者からＣＳサービスアイテムに対する更新を受信すること、
前記代行者を認証した後に、前記ＣＳサービスアイテムを同期化のためのタグでラベル付けすること、
前記タグを検出した後に、
前記更新を前記ＣＳサービスアイテムに適用し、前記更新をＣＳサービスキャッシュに記憶すること、
前記更新を前記ＣＲＭアプリケーションに送信すること、
を含む、前記ＣＳサービスアイテムを更新するためのプロセスを開始すること、
前記ＣＳサービスアイテムに関連付けられた更新されたＣＲＭアイテムについて、前記ＣＲＭアプリケーションに照会すること、
前記更新されたＣＲＭアイテムを、前記ＣＳサービスアイテムに関する他の更新として取り出すこと、
前記他の更新をＣＳサービスアイテムに適用すること、
を含む、コンピュータ読み取り可能メモリデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  顧客関係管理（CRM）ソリューションは、最初のコンタクトから購買およびポストセールスまで、顧客の明確な実態を作成および維持するために必要なツールおよび機能を提供する。複雑な組織のために、ＣＲＭシステムは、販売、マーケティング、および／または顧客サービスの組織が新しい顧客をターゲットにし、マーケティングキャンペーンを管理し、販売活動を推進する方法を向上させるのに役立つ特徴および機能を提供することができる。ＣＲＭシステムは、ユーザが組織の内外で個別にまたは共有して使用する、多くの構成要素、ハードウェア、およびソフトウェアを含むことができる。
【０００２】
[0002]  ＣＲＭシステムは、人物、組織、アカウント、および同様の物などのエンティティに関連付けられたデータが様々な目的のために維持される、コンピューティングシステムの例である。ＣＲＭアプリケーションによって収集および維持される情報のいくつかは、コミュニケーションおよび／またはスケジューリングサービス（たとえば、ワシントン州レドモンドのMicrosoft CorporationによるExchange Server（登録商標）またはExchange Online（登録商標））などの、他の一般的なアプリケーションによっても収集可能である。ユーザが、２つまたはそれ以上のアプリケーションによって維持されている同様の情報を有する場合、論理的なアクションは、効率および精度を向上させるために情報を同期することである。いくつかのアプリケーションは、維持されている情報を同期する機能を有するが、従来の同期化手法は比較的信頼性に乏しく、リソースを多用するものであって、代行（権限委任）または検索などの拡張機能を十分に活用することができない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
[0003]  現在のソリューションも、複数のプラットフォームに渡って同期化を維持する際の、ユーザ特権の適応に欠けている。あるプラットフォームにおいてユーザのコンテンツにアクセスできるようにすることは、同じかまたは同様のコンテンツを維持している他方のプラットフォームに及ぶものではない。最新のプラットフォームでは、代替ユーザアクセスのシナリオは、複数のプラットフォームにおける認証およびユーザのコンテンツを更新するプロセスの重複によって、代替ユーザが作業を重複して行う必要がある。
【課題を解決するための手段】
【０００４】
[0004]  本概要は、以下の発明を実施するための形態で詳細に説明される概念の選択を、簡略化された形で紹介するためのものである。本概要は、請求される対象の主要な特徴または必須の特徴を排他的に識別することは意図しておらず、また、請求される対象の範囲を決定する際の補助としても意図されていない。
【０００５】
[0005]  各実施形態は、同期化モジュールを介して、ＣＲＭアプリケーションとコミュニケーション（通信）およびスケジューリング（ＣＳ: Communications and Scheduling）サービスとの間で情報の同期化を可能としている。いくつかの実施形態によれば、ＣＳサービスは、キャッシュを採用している単一または複数スレッドのプロセスを介して、電子メール、連絡先、スケジューリングイベント、およびタスクに関連付けられたデータを、ＣＲＭアプリケーションによって維持されているデータと同期することが可能である。効率的な同期化を確実にすることに加えて、ＣＳサービスのウェブサービスを介して、ＣＳおよびＣＲＭアプリケーション内の関連データにアップデートを提供するために、代行者を認証および認可することができる。
【０００６】
[0006]  これらおよび他の特徴および利点は、以下の詳細な説明を読み、関連付けられた図面を検討することから明らかとなろう。前述の一般的な説明および以下の詳細な説明はいずれも説明のためのものであり、請求される態様を制限するものではないことを理解されよう。
【図面の簡単な説明】
【０００７】
【図１】[0007]いくつかの実施形態に従った、ＣＳサービスがＣＳとＣＲＭアプリケーション間で同期化を管理することが可能な、ネットワーク化環境を示す図である。
【図２】[0008]ＣＳサービスでの変更に基づく、ＣＲＭアプリケーションの同期化におけるアクションおよび構成要素の例を示す図である。
【図３】[0009]ＣＲＭアプリケーションでの変更に基づく、ＣＳサービスの同期化におけるアクションおよび構成要素の例を示す図である。
【図４】[0010]いくつかの実施形態に従った、システム内での同期化前および同期化後のキャッシュ記録の更新を示す図である。
【図５】[0011]実施形態に従ったシステムが実装可能な、ネットワーク化環境を示す図である。
【図６】[0012]実施形態が実装可能な、コンピューティング動作環境の例を示すブロック図である。
【図７】[0013]実施形態に従った、ＣＳとＣＲＭアプリケーションデータとを同期するプロセスに関する論理フロー図である。
【発明を実施するための形態】
【０００８】
[0014]  上記で簡単に説明したように、ＣＳとＣＲＭアプリケーションとの間の双方向同期化は、同期化状態を追跡するために、拡張マークアップ言語（XML）フォーマット対応ストレージを使用して、ＣＳサービス側での同期化モジュールを介して容易にすることができる。以下の詳細な説明では、本明細書の一部を形成する添付の図面を参照し、図面内では特定の実施形態または実施例が、例証として示されている。本開示の趣旨または範囲を逸脱することなく、これらの態様が組み合わせ可能であり、他の態様が使用可能であり、構造上の変更が可能である。したがって、以下の詳細な説明は限定的な意味と捉えるものではなく、本発明の範囲は添付の特許請求の範囲およびそれらの等価物によって定義される。
【０００９】
[0015]  実施形態は、コンピューティングデバイス上のオペレーティングシステムで実行するアプリケーションプログラムとともに実行するプログラムモジュールとの関連において説明されるが、当業者であれば、態様が他のプログラムモジュールと組み合わせても実装可能であることを理解されよう。
【００１０】
[0016]  一般に、プログラムモジュールは、ルーチン、プログラム、構成要素、データ構造、および、特定のタスクを実行するかまたは特定の抽象データ型を実装する他のタイプの構造を含む。さらに当業者であれば、実施形態が、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブル家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ、および同等のコンピューティングデバイスを含む、他のコンピュータシステム構成とともに実施可能であることを理解されよう。実施形態は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実行される、分散型コンピューティング環境においても実施可能である。分散型コンピューティング環境において、プログラムモジュールはローカルおよびリモートの両方のメモリ記憶デバイス内に配置することができる。
【００１１】
[0017]  実施形態は、コンピュータ実装プロセス（方法）、コンピューティングシステム、あるいは、コンピュータプログラム製品またはコンピュータ読み取り可能媒体などの製品として、実装可能である。コンピュータプログラム製品は、コンピュータシステムによる読み取りが可能であり、コンピュータまたはコンピューティングシステムに例示のプロセスを実行させるための命令を備えるコンピュータプログラムを符号化する、コンピュータ記憶媒体とすることができる。コンピュータ読み取り可能記憶媒体は、コンピュータ読み取り可能メモリデバイスである。コンピュータ読み取り可能記憶媒体は、たとえば、揮発性コンピュータメモリ、不揮発性メモリ、ハードドライブ、フラッシュドライブ、フロッピィディスク、またはコンパクトディスク、および同等の媒体のうちの、１つまたは複数を介して実装可能である。
【００１２】
[0018]  本明細書全体を通じて、「プラットフォーム」という用語は、ＣＲＭおよび／または電子メール、連絡先、スケジューリングベースのサービスを提供するための、ソフトウェアおよびハードウェアの構成要素の組み合わせとすることができる。プラットフォームの例は、複数のサーバを介して実行されるホストサービス、単一のコンピューティングデバイス上で実行されるアプリケーション、および同等のシステムを含むが、これらに限定されることはない。「サーバ」という用語は、一般に、典型的にはネットワーク化環境内で１つまたは複数のソフトウェアプログラムを実行するコンピューティングデバイスを指す。しかしながらサーバは、ネットワーク上のサーバと見なされる１つまたは複数のコンピューティングデバイス上で実行される、仮想サーバ（ソフトウェアプログラム）としても実装可能である。さらに、これらの技術および例示の動作に関する詳細を以下に示す。
【００１３】
[0019]  電子メール、スケジューリング、連絡先管理、カレンダリング、および、サーバベースアーキテクチャを伴う同様のサービスを提供する、ホスト、ローカル、および／または分散型のアプリケーションを集合的に記述するために、本明細書では、ＣＳサービスという組み合わせられた用語が使用される。こうしたアプリケーションの例は、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  ＣｏｒｐによるＥｘｃｈａｎｇｅ  Ｓｅｒｖｅｒ（登録商標）およびＥｘｃｈａｎｇｅ  Ｏｎｌｉｎｅ（登録商標）を含む。こうしたアプリケーションは、ウェブサービスなどのいくつかのアプリケーションプログラミングインターフェース（API）を介して、上記で列挙した機能のうちの１つまたは複数へのアクセスを提供することができる。アプリケーションは、ホストサービスとしてサーバ上で実行すること、および、ブラウザまたはローカルに実行されるクライアントアプリケーションなどのシンクライアントを介してユーザがアクセスすることが可能である。いくつかのサービスはリモートに提供可能であり、その他はローカルに提供可能である。簡単にするために、こうしたアプリケーションは集合的にＣＳサービスと呼ばれる。
【００１４】
[0020]  図１を参照すると、略図１００は、いくつかの実施形態に従い、ＣＳサービスがＣＳとＣＲＭアプリケーションとの間の同期化を管理し得るネットワーク化環境を示す。略図１００に示されたコンピューティングデバイスおよびコンピューティング環境は、例示のためのものである。実施形態は、多様なコンピューティングデバイスおよびシステムを採用する、様々なローカル、ネットワーク化、および同様のコンピューティング環境で実装可能である。
【００１５】
[0021]  略図１００に示された例示の環境では、ＣＳサービス１０４は、ＣＲＭサーバ１０６上で実行されるＣＲＭアプリケーション１０８にネットワーク１１０を介してアクセスすることができる。ユーザは、ネットワーク１２０を介し、コンピューティングデバイス１１２、１１６上で実行されるブラウザまたはクライアントアプリケーション（１１４、１１８）を介して、サーバ１０２上で実行されるＣＳサービス１０４によって管理される電子メール、連絡先管理、および／またはスケジューリングサービスにアクセスすることができる。ネットワーク１１０および１２０は同じネットワークであってもよい。代替として、ネットワーク１１０および１２０は別々のネットワークであってもよい。加えて、ネットワーク１１０および１２０は、より大きなネットワークの構成要素であってもよい。
【００１６】
[0022]  ＣＳサービス１０４およびＣＲＭアプリケーション１０８は、どちらも、連絡先情報、アポイントメント／会合情報、電子メールデータ、および同等の情報などの情報を、収集および維持することができる。ＣＳサービスおよびＣＲＭ側での情報の重複を避けるため、ならびに矛盾するデータが使用されるのを避けるために、ＣＳサービスに関連して実行される同期化モジュールを採用する双方向同期化が実行可能である。
【００１７】
[0023]  従来の同期化手法は、変更イベントにおけるメッセージングアプリケーションプログラミングインターフェース（MAPI）／ＲＰＣなどの、メッセージングアーキテクチャおよびコンポーネントオブジェクトモデルに依拠しているが、これらは本質的に信頼できないかもしれない。さらに、サーバとクライアントとの間で列レベルの矛盾を一致させられない可能性があるため、常に、一方が他方のすべてのデータを上書きすることになる。従来のＣＳサービスは、代行（権限委譲）または共有されたメールボックスを同期することができず、拡張検索機能を利用しない。
【００１８】
[0024]  コミュニケーションおよびスケジューリング（CS）サービスと顧客関係管理（CRM）アプリケーションとの間の同期化は、同期化状態を追跡するために、拡張マークアップ言語（XML）フォーマット対応ストレージを使用して、ＣＳサービス側での同期化モジュールを介して容易にされる。ＸＭＬ形式フォーマット対応ストレージは、ＣＳサービスメモリ内に記憶される、ＸＭＬファイルまたはＸＭＬフォーマット対応小規模データベースとすることができる。アイテムのＣＲＭサーババージョンは、ＣＳサービスアイテムに対して実行された変更および同一を検出するために、ＸＭＬフォーマット対応ストレージと比較される。その後、変更された列に関して、対応するアイテムに変更がプッシュされる。矛盾する場合は、最後に更新されたアイテムが選択される。
【００１９】
[0025]  ウェブサービスなどのアプリケーションプログラミングインターフェース（API）を介して実行されるＣＳサービス側での変更によって、クライアントアプリケーションがＣＳサービスアイテムを更新することが可能である。ウェブサービスは、第三者クライアントアプリケーションへの互換性アクセスを提供するために、ＣＳサービスによって使用される標準化ウェブサービスとすることができる。代替として、ＣＳサービスは、各クライアントに対してカスタムウェブサービスを使用することができる。カスタムウェブサービスは、他のクライアントとの互換性を犠牲にして、あるクライアントに広範なインタラクションおよび追加の機能を提供することができる。
【００２０】
[0026]  コンピューティングデバイス１１２および１１６は、デスクトップコンピュータ、ラップトップコンピュータ、サーバ、ハンドヘルドコンピュータ、車両搭載コンピュータ、スマートフォン、および同等のデバイスを含む、任意のコンピューティングデバイスとすることができるが、これらに限定されない。
【００２１】
[0027]  図２は、略図２００において、ＣＳサービスでの変更に基づくＣＲＭアプリケーションの同期化の際の、例示のアクションおよび構成要素を示す。個々のアイテム（たとえば連絡先、タスク、アポイントメント、および電子メール）は、いくつかの方法で同期化用にマーク付けすることができる。アイテムを同期化用にマーク付けした後、そのアイテムのコピーは、ＣＳサービス２２０内に常駐する一方のコピーと、ＣＲＭアプリケーション２３６内に常駐する他方のコピーの、２つが存在する。加えて、ＣＲＭモジュール２２６によって管理される同期化プロセス２３２を介して、アイテムのいずれかのコピーに対して実行された修正は、他方のシステム内で複製され得る。いくつかの実施形態によれば、クライアントアプリケーションは、ＣＲＭアプリケーションに関連付けられた追跡制御を使用することによって、いずれのＣＳサービスアイテムをＣＲＭアプリケーションと同期させるかを制御することが可能となる。
【００２２】
[0028]  ＣＳサービス２２０内で修正されたアイテムに関して、それらの変更をＣＲＭアプリケーション２３６内のアイテムと同期させるためのプロセスは、アイテムが変更されると必ずＣＳサービス２２０が生成し得るウェブサービス変更通知２２４をモニタリングすることによって変更（２２２）を検出する、ＣＳサービス同期化プロセス２３２を含むことができる。同期化用にマーク付けされたアイテムに関するウェブサービス通知がＣＲＭモジュール２２６で検出された場合、これを記録するエントリを、ＣＳサービスキャッシュ内のＣＳサービス同期化テーブル２２８に追加することができる。これによって、ＣＳサービス側のＣＲＭ追跡アイテムへの変更は、たとえこれらの変更がＣＲＭモジュール２２６なしで発生した場合であっても、ＣＲＭアプリケーション２３６によって取り出されることが保証される。
【００２３】
[0029]  ＣＲＭモジュール２２６によって作成されるＣＳサービスキャッシュは、サーバ上に配置され、同期化プロセスが使用するための同期化アイテムに関する情報を記憶するために使用される、小規模データベースとすることができる。キャッシュは、同期化に失敗した変更について同期化を再試行するために、ＣＳおよびＣＲＭアプリケーション内のアイテム、ならびにいずれかのシステムによって実行されたそれらのアイテムに対する変更を、識別および位置付けするために必要な情報を含むことができる。ＩＤマッピングテーブルは、主に、ＣＳまたはＣＲＭシステムをスキャンする代わりに、識別子によってアイテムを取得するために使用可能な、ＣＲＭとＣＳとの間でのアイテムのマッピングを記憶するために使用することができる。これによって、ＣＲＭモジュールは、ＣＳサービス上でリソースを多用するスキャンを実行せずに、新しい記録が追加される必要があることまたは既存の記録を修正する必要があることを、変更が示すかどうかを確立するための、即時参照を有することが保証される。結果として、ＣＳサービス性能に大きな影響を与えることなく、より高速な同期化を達成することができる。ＣＳサービスキャッシュは、前述のようなＸＭＬフォーマット対応ストレージとすることができる。ＸＭＬフォーマット対応ストレージはＸＭＬファイルとすることができる。
【００２４】
[0030]  ある環境の下で、たとえばＣＲＭモジュール２２６が完全にロードされる前に変更が行われた場合、ＣＲＭモジュール２２６はウェブサービス通知を見逃す可能性がある。こうしたシナリオを軽減するために、ＣＲＭモジュール２２６のインストールによって、同期化用にマーク付けされ、修正日に基づいて逆順でソートされる、すべてのアイテムを記憶するウェブサービスコンテンツテーブルを作成することができる。結果として、最後に同期化が実行されて以来変更されてきたすべてのアイテムに関する同期化フォルダに対して、次にシステムがウェブサービスコンテンツテーブルをスキャンする際に、見逃されたいずれの変更通知（削除通知を除く）も取り出すことができる。ウェブサービスコンテンツテーブル内のアイテムは、最後の同期化に達するまで１つずつ処理することができる。
【００２５】
[0031]  したがって、ＣＳサービスキャッシュは、ＩＤマッピングテーブル２３０およびＣＳサービス同期化テーブル２２８の、少なくとも２つのテーブルを含むことができる。削除されたアイテムについて、ＣＳサービスキャッシュ内のアイテムを検査し、ＣＳサービスデータストア内のアイテムの存在を検証するために、定期的な調整を実行することができる。アイテムが見つからない場合、ＣＳサービス同期化テーブル２２８に削除エントリを追加することができる。例示のデータおよび値タイプが入力された２つの例示テーブルを以下に示す。
【００２６】
【表１】
2015537275.tif 000003
【００２７】
【表２】
2015537275.tif 000004
【００２８】
[0032]  同期化プロセス２３２は、処理のためにテーブルからアイテムを取り出し、ＣＲＭアプリケーション内の変更されたフィールドを更新することができる（２３４）。たとえば、ＣＳサービス２２０内の連絡先に対する変更は、同期化プロセス２３２後に、ＣＲＭアプリケーション２３６内の連絡先２３８に反映させることができる。
【００２９】
[0033]  いくつかの実施形態において、ＣＳサービスは、ウェブサービスで代行ユーザ（権限委譲されたユーザ）をＣＳサービスアイテムに関する更新の提供者として認証することができる。ＣＳサービスは、更新を適用するために、ＣＳサービスアイテムの所有者に関連付けられたアクセス特権を提供することができる。更新は、所有者の共有メールボックスで適用可能である。ある例は、共有メールボックス内のユーザの電子メールアカウントで、代行者によって提供された変更済みの連絡先情報を更新することを含み得る。共有メールボックスは、ＣＳサービスによって管理することができる。しかしながら、あるシナリオでは、ＣＲＭアプリケーションが、共有メールボックスを管理することおよび／またはそれを記憶することが可能である。加えて、ＣＳサービスは、代行者の特権レベルに従った更新のために、更新アクションを制限することができる。ある例では、ＣＳサービスまたはＣＲＭアイテムの所有者と比べて特権の少ない代行者を有する。こうしたシナリオでは、ＣＳサービスは代行特権の領域内のアクションのみをアクティベート（活動化）することができる。ある例では、ＣＳサービスは、連絡先のアドレスまたは電話番号などの個人情報の更新はブロックしながら、連絡先の場所などの一般情報のみを代行者が更新できるようにすることが可能である。
【００３０】
[0034]  他の実施形態によれば、ＣＳサービスは、認証された代行者から更新を受信した後に、同期化用のタグを用いてＣＳサービスアイテムにラベル付けすることができる。ＣＳサービスは、ＩＤマッピングテーブル２３０内のタグのスケジュール検索または手動検索を介して、タグの検出の結果として、プロセスの活動化の後に、更新のためのプロセスを開始することができる。
【００３１】
[0035]  図３は、略図３００における、ＣＲＭアプリケーションでの変更に基づくＣＳサービスの同期化におけるアクションおよび構成要素の例を示す。ＣＲＭアプリケーション（３３６）側での変更は、同期化プロセス３３２が、特定のサーバに対して変更されたＣＲＭサーバ上のいくつかのアイテムを識別し（３５６）、こうした変更の正常な同期化が最後に実行されて以来のその要約情報を戻す（３４８）、ＣＲＭサーバ上のアプリケーションプログラミングインターフェース（API）３５０の同期化準備を呼び出すこと（３５２）によって、取り出すことができる。この情報を用いて、ＣＲＭＩＤおよび変更済みアイテムのタイムスタンプを含む列セット３５４を備えたサーバに対して、同期化データを取り出すための呼び出し（３４６）を実行することができる。
【００３２】
[0036]  このように取り出されたアイテムについて、各アイテムについて変更が処理されたことをＣＲＭサーバに識別させるために、同期化後ＡＰＩを呼び出すことができる。次にアイテムを、後で処理するために、ＣＳサービス同期化テーブル３２８内のＣＳサービスキャッシュに追加することができる（３４２）。ＣＳサービス３２０は、ＩＤマッピングテーブル２３０を含み、必要であれば両方のテーブルからの変更をマージすること（３４４）も可能であり、結果として更新済みアイテム３５８（たとえば更新済み連絡先カード）が生じる。
【００３３】
[0037]  幾つかの実施形態に従ったシステムにおいて、同期化は双方向である。したがって、ＣＳサービス３２０がＣＲＭアプリケーション３３６と同期し、またその逆も起こる。同期化プロセスが実行された後、アイテムの最新の同期化済みバージョンがＸＭＬフォーマットで保存され、アイテムのプロパティ内に記憶される。更新は、ＣＳサービスアイテムのプロパティとしてのＸＭＬファイル内に、ＣＳサービスアイテムの以前の状態として記憶することができる。
【００３４】
[0038]  ＣＳサービスまたはＣＲＭのいずれかでアイテムが変更された場合、ＣＳサービスからのアイテムのＸＭＬ記録および変更のタイムスタンプを使用して列の相違を比較することによって、両方のシステムにおいて変更が見られるように、アイテムを同期することができる。アイテムがＣＳおよびＣＲＭアプリケーションの両方で変更された場合、変更のタイムスタンプに従って双方向同期化が実行可能であるため、最新の変更が優先され、以前の変更を無効にする。
【００３５】
[0039]  たとえば、ＣＲＭ内の同期されたアイテムが、ＣＳサービス内の対応するアイテムに関する変更の後に変更された場合、ＣＲＭ内のアイテムに対して実行された最新の変更をＣＳサービス内の対応するアイテムに対して同期するために、ＣＳサービスに対するＣＲＭの同期化を実行することが可能であり、ＣＳサービスアイテムに関連付けられたＸＭＬ記録を更新することが可能である。その後システムは、ＣＳサービスアイテムに対する最新の変更がＣＲＭ内の対応するアイテムと同期されるのを保証するために、ＣＲＭに対するＣＳサービスの同期化を実行することができる。
【００３６】
[0040]  いくつかの実施形態によれば、ＣＳサービスは、ＣＳサービスキャッシュ内のＣＳサービスのウェブサービスから受信したＣＳサービスアイテムに対する更新を記憶することができる。ＣＳサービスは、ＣＳサービスキャッシュ内の対応するＣＲＭアイテムから取り出したＣＳサービスアイテムに対する更新も記憶することができる。ＣＲＭアプリケーションは、事前に定義された期間の満了、システムイベント、およびクライアントアプリケーションによる手動活動化のうちの１つまたは複数に応答して、更新されたＣＲＭアイテムについて照会することができる。代替として、ＣＲＭアプリケーションは、ＣＳサービスアイテム内での変更の検出、および同期化に関するＣＳサービスアイテムのマーク付けの通知に応答して、対応するＣＲＭアイテムからの更新について照会することができる。加えてＣＳサービスは、ＣＳサービスのウェブサービスを介して同期化用のクライアントアプリケーションから受信した要求に対処することができる。
【００３７】
[0041]  他の実施形態によれば、ＣＳサービスまたはＣＲＭモジュールは、ＣＳサービスアイテムに対する更新を管理するために、シングルスレッドプロセスまたは並列コンピューティングを使用するマルチスレッドプロセスを実行することができる。加えてＣＳサービスは、ＸＭＬストレージを、ＣＳサービスおよび対応するＣＲＭアイテムに関連付けられた情報を記憶するためのＣＳサービスでの小規模データベースとして維持することができる。ＣＳサービスおよび対応するＣＲＭアイテムに関連付けられた情報は、ＣＳおよびＣＲＭアプリケーション上のアイテムに関する識別データおよび位置データ、ならびに、変更済みアイテムに関するＣＳおよびＣＲＭアプリケーションからの変更情報を、含むことができる。
【００３８】
[0042]  図４は、いくつかの実施形態に従った、システム内の同期化前および同期化後の記録の更新を示す。略図４００は、ＣＲＭとＣＳアプリケーションとの間で重複している変更をマージすることに関連付けられたプロセスの例を提供する。
【００３９】
[0043]  例示のシナリオによれば、同期化前（４６６）に、ＣＳサービスのウェブサービスでの更新イベントは、ＣＳサービス４６０内のアイテムにおける３つのフィールド（Ａ１、Ｂ１、およびＣ１）４７２に対して変更を施す。ＸＭＬファイル４６２はアイテムのオリジナル記録（Ａ、Ｂ、およびＣ）４７４を維持する。後に、同じイベントまたは別のイベントがＣＲＭ  ４６４内の対応するアイテムに対して変更を実行し、ＣＳウェブサービスによって以前に修正された２つの同じフィールド（Ａ２およびＢ２）４７６を修正する。結果として、ＣＲＭのタイムスタンプは、対応するＣＳサービスのタイムスタンプよりも新しいものとなる。
【００４０】
[0044]  同期化の第１段階４６８の間、ＣＲＭシステム内のより新しいフィールド値（Ａ２およびＢ２）４７６をＸＭＬファイル４６２にコピーし、その後ＣＳサービス４６０内のアイテムにコピーして、ＣＳサービス４６０内のアイテムに実行された以前の変更（Ａ１およびＢ１）を上書きすることができる。ＣＳサービスに対するＣＲＭの同期化（４６８）が完了すると、ＣＲＭに対するＣＳサービスの同期化４７０が実行可能であり、ＣＳサービス４６０内のより新しいフィールド値（Ｃ１）をＸＭＬファイル４６２にコピーし、その後ＣＲＭ  ４６４内のアイテムにコピーして、オリジナル値（Ｃ）を上書きすることができる。
【００４１】
[0045]  実施形態に従ったシステムにおいて、ＣＳサービスのＣＲＭとの同期化は、ウェブサービスが同期化用のアイテムにマーク付けするか、またはＣＳサービスアイテム（連絡先など）を変更した場合にトリガすることができる。同期化は、クライアントアプリケーションがＣＳサービスのＣＲＭとの同期化を手動で開始すること、またはサーバの同期化動作を定期的に開始することに応答して、トリガすることも可能である。手動ならびにサーバの同期化は、結果として、ＣＳサービスとＣＲＭとの間の変更の即時複製を生じさせることができる。ウェブサービスが同期化用のアイテムにマーク付けするか、またはＣＳサービスアイテムを変更した場合、同期化プロセスは必ずしも即時に発生するわけではない（たとえば、一連の変更を完了するための時間をウェブサービスに与えるため）。
【００４２】
[0046]  図２から図４の例は、特定の構成および構成要素を用いて説明してきた。実施形態は、これらの例示の構成および構成要素に従ったシステムに限定されない。ＣＲＭとＣＳサービスとの間の双方向同期化は、他のタイプの構成要素、プロセス、および構成を使用する構成において、本明細書で説明される原理を使用する同様の様式で実装可能である。
【００４３】
[0047]  図５は、実施形態が実装可能な例示のネットワーク化環境である。ＣＲＭアプリケーションとＣＳサービスとの間の双方向同期化のためのシステムは、ホストサービスなどの１つまたは複数のサーバ５１４を介して実行されるソフトウェアを介して実装可能である。プラットフォームは、スマートフォン５１３、ラップトップコンピュータ５１２、またはデスクトップコンピュータ５１１（「クライアントデバイス」）などの個々のコンピューティングデバイス上のクライアントアプリケーションと、ネットワーク５１０を介して通信可能である。
【００４４】
[0048]  クライアントデバイス５１１〜５１３のいずれかで実行されるクライアントアプリケーションは、１つまたは複数のサーバ５１４で実行されるＣＳサービスと通信することができる。サーバ５１６上で実行されるＣＳサービスおよびＣＲＭアプリケーションに関連して実行される同期化モジュールは、前述のようにＣＳサービスおよびＣＲＭアプリケーションによって維持される様々な形のデータの双方向同期化を容易にすることができる。ＣＲＭおよび／またはＣＳサービスは、データストア５１９から直接またはデータベースサーバ５１８を介して関連データを取り出し、要求されたサービス（たとえば文書の編集）をクライアントデバイス５１１〜５１３を介してユーザに提供することができる。
【００４５】
[0049]  ネットワーク５１０は、サーバ、クライアント、インターネットサービスプロバイダ、および通信媒体の、任意のトポロジを備えることができる。実施形態に従ったシステムは、静的または動的なトポロジを有することができる。ネットワーク５１０は、企業ネットワークなどのセキュアネットワーク、ワイヤレスオープンネットワークまたはインターネットなどの非セキュアネットワークを含むことができる。ネットワーク５１０は、公衆交換電話網（PSTN）またはセルラネットワークなどの、他のネットワークを介して通信を調整することも可能である。さらにネットワーク５１０は、Ｂｌｕｅｔｏｏｔｈまたは同様のものなどの、短距離ワイヤレスネットワークを含むことができる。ネットワーク５１０は、本明細書で説明されるノード間の通信を提供する。例を挙げると、ネットワーク５１０は、音響、ＲＦ、赤外線、および他のワイヤレス媒体などの、ワイヤレス媒体を含むことができるが、限定ではない。
【００４６】
[0050]  コンピューティングデバイス、アプリケーション、データソース、およびデータ分散システムの多くの他の構成を採用して、ＣＳとＣＲＭアプリケーションとの間の双方向同期化を提供するプラットフォームを実装することができる。さらに図５で考察されるネットワーク化環境は、単なる例示目的のものである。実施形態は、例示のアプリケーション、モジュール、またはプロセスに限定されない。
【００４７】
[0051]  図６および関連する考察は、実施形態が実装可能な好適なコンピューティング環境の簡単な一般的説明を提供することが意図されている。図６を参照すると、コンピューティングデバイス６００などの、実施形態に従ったアプリケーションに関する例示のコンピューティング動作環境のブロック図が示されている。基本構成において、コンピューティングデバイス６００は、実施形態に従った電子メール、連絡先管理、スケジューリング、および同様のサービスを提供可能なアプリケーション、ならびに、ＣＲＭアプリケーションへのアクセスを実行する、任意のコンピューティングデバイスとすることが可能であり、少なくとも１つの処理ユニット６０２およびシステムメモリ６０４を含むことができる。コンピューティングデバイス６００は、プログラムの実行の際に協力する複数の処理ユニットを含むこともできる。コンピューティングデバイスの実際の構成およびタイプに応じて、システムメモリ６０４は揮発性（RAMなど）、不揮発性（ROM、フラッシュメモリなど）、またはこの２つの何らかの組み合わせとすることができる。システムメモリ６０４は、典型的には、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎからのＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムなどの、プラットフォームの動作を制御するのに好適なオペレーティングシステム６０５を含む。システムメモリ６０４は、プログラムモジュール６０６、ＣＳサービス６２２、および同期化モジュール６２４などの、１つまたは複数のソフトウェアアプリケーションを含むこともできる。
【００４８】
[0052]  ＣＳサービス６２２は、ホストサービスに関連する通信・コミュニケーション、スケジューリング、および同等のサービスを提供することができる。同期化モジュール６２４は、シングルまたはマルチスレッドのプロセスを使用して、ＣＳサービス６２２とＣＲＭアプリケーションとの間での、連絡先情報、電子メールデータ、スケジューリング情報、タスクなどのデータの双方向同期化を実行可能にし、代行適応、検索機能などの拡張機能を実行可能にすることができる。ＣＳサービス６２２および同期化モジュール６２４は、別々のアプリケーションとするか、またはホストサービスの統合モジュールとすることができる。この基本構成は、図６において破線６０８内の構成要素によって示される。
【００４９】
[0053]  コンピューティングデバイス６００は、追加の特徴または機能を有することができる。たとえばコンピューティングデバイス６００は、たとえば磁気ディスク、光ディスク、またはテープなどの、追加のデータ記憶デバイス（取り外し可能および／または取り外し不可）も含むことができる。こうした追加のストレージは、図６内で、取り外し可能ストレージ６０９および取り外し不可ストレージ６１０によって示されている。コンピュータ読み取り可能記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための、任意の方法または技術で実装された、揮発性および不揮発性、取り外し可能および取り外し不可の媒体を含むことができる。システムメモリ６０４、取り外し可能ストレージ６０９、および取り外し不可ストレージ６１０は、すべてのコンピュータ読み取り可能記憶媒体の例である。コンピュータ読み取り可能記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（DVD）または他の光ストレージ、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは、所望の情報を記憶するために使用可能でありコンピューティングデバイス６００によってアクセス可能な任意の他の媒体を含むが、これらに限定されない。任意のこうしたコンピュータ読み取り可能記憶媒体は、コンピューティングデバイス６００の一部とすることができる。コンピューティングデバイス６００は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、および同等の入力デバイスなどの、入力デバイス６１２を有することもできる。ディスプレイ、スピーカ、プリンタ、および他のタイプの出力デバイスなどの出力デバイス６１４も、含めることができる。これらのデバイスは当分野で良く知られているため、ここで詳細に論じる必要はない。
【００５０】
[0054]  コンピューティングデバイス６００は、分散型コンピューティング環境におけるワイヤードまたはワイヤレスネットワーク、衛星リンク、セルラリンク、短距離ネットワーク、および同等の機構などを介して、デバイスが他のデバイス６１８と通信できるようにする、通信接続６１６を含むこともできる。他のデバイス６１８は、通信アプリケーション、ウェブサーバ、および同等のデバイスを実行する、コンピュータデバイスを含むことができる。通信接続６１６は通信媒体の一例である。通信媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、または他のデータを、内部に含むことができる。例を挙げると、通信媒体は、ワイヤードネットワークまたはダイレクトワイヤード接続などのワイヤード媒体、および、音響、ＲＦ、赤外線、および他のワイヤレス媒体などのワイヤレス媒体を含むが、これらに限定されない。
【００５１】
[0055]  例示の実施形態は方法も含む。これらの方法は、本書で説明される構造を含む、任意数の方法で実装可能である。こうした方法の１つが、本書で説明されるタイプのデバイスの機械動作によるものである。
【００５２】
[0056]  別の任意選択方法は、何らかを実行する１人または複数の人間オペレータに関連して実行されることになる方法の、個々の動作のうちの１つまたは複数に対するものである。これらの人間オペレータは互いに共同配置される必要はないが、それぞれがプログラムの一部を実行する機械とのみ共同配置されることができる。
【００５３】
[0057]  図７は、実施形態に従った、ＣＳとＣＲＭアプリケーションとのデータを同期するプロセス７００に関する論理フロー図を示す。プロセス７００は、サーバデバイス上で実行可能である。
【００５４】
[0058]  プロセス７００は、ＣＳサービスがウェブサービスを介してＣＳサービスアイテムへの更新を受信することが可能な、動作７１０で開始される。更新は、ウェブサービスと対話するクライアントアプリケーションによって提供可能である。動作７２０で、ＣＳサービスは、更新をＣＳサービスアイテムに適用し、更新をＣＳサービスキャッシュに記憶することができる。アプリケーションは、連絡先などのアイテムを新しい電話番号などの更新情報で更新すること、および、更新を、小規模データベースなどのメモリ内で保持可能なＣＳサービスキャッシュに記憶することが可能である。次に動作７３０で、アプリケーションは、対応するＣＲＭアイテムを更新するために、更新をＣＲＭアプリケーションに送信することができる。
【００５５】
[0059]  ＣＲＭ側での変更の場合、ＣＳサービスは、動作７４０でのＣＳサービスアイテムに対応する更新されたＣＲＭアイテムについて、ＣＲＭアプリケーションに照会することができる。ＣＳサービスは、動作７５０で、更新されたＣＲＭアイテムをＣＳサービスアイテムに関する他の更新として取り出すことができる。次に動作７６０で、ＣＳサービスは他の更新を適用し、他の更新をＣＳサービスキャッシュに記憶することができる。
【００５６】
[0060]  プロセス７００に含まれる動作は、単に例示のためのものである。ＣＳとＣＲＭアプリケーションとの間の双方向同期化は、より少ない工程または追加の工程を伴う同様のプロセスによって、ならびに本明細書で説明される原理を使用する異なる順序の動作で、実装可能である。
【００５７】
[0061]  上記の詳述、例、およびデータは、実施形態の構成の製造および使用について完全な説明を提供している。対象について構造上の機能および／または方法行為に特有の言い回しで説明してきたが、添付の特許請求の範囲で定義される対象は、必ずしも前述の特定の機能または行為に限定されるものでないことを理解されよう。むしろ、前述の特定の機能または行為は、特許請求の範囲および実施形態を実装する例示の形として開示されている。
【図１】
2015537275.tif 000005
【図２】
2015537275.tif 000006
【図３】
2015537275.tif 000007
【図４】
2015537275.tif 000008
【図５】
2015537275.tif 000009
【図６】
2015537275.tif 000010
【図７】
2015537275.tif 000011
【国際調査報告】
2015537275.tif 000012
2015537275.tif 000013