(57)【要約】  クライアントアプリケーションインスタンスとメッセージサービスプロバイダとの間でメッセージを同期するシステム及び方法は、複数のクライアントメッセージングアプリケーションインスタンスに通信可能に連結された接続サービスと、クライアントアプリケーションインスタンスのメッセージの更新を格納するインバウンドメッセージデータキューとメールボックスサービス層からのメッセージの更新及び通知を格納するアウトバウンドメッセージデータキューとを有する第１の中間転送層と、第１の中間転送層を介して接続サービスに通信可能に連結されたメールボックスサービス層と、メールボックスサービス層宛てのキューに入れられたメッセージデータを含むメールボックスメッセージデータキューとメッセージサービス層宛ての待ち行例に入れられたメッセージの更新を含むメッセージサービスデータキューとを有する第２の中間転送層と、外部のメッセージサービスプロバイダとメッセージをやり取りするように構成されたメッセージサービス層とを含む。
2016502806.tif 000002
【特許請求の範囲】
【請求項１】
システムであって、
複数のクライアントメッセージングアプリケーションインスタンスと通信を行う接続サービスと、
前記クライアントメッセージングアプリケーションインスタンスの１つ以上から入ってくるメッセージの更新、及び、前記複数のクライアントメッセージングアプリケーションインスタンスの１つ以上へ向かうメッセージの更新を、一時的に格納して処理するメールボックスサービス層と、
１つ以上の外部のメッセージサービスプロバイダと通信を行うメッセージサービス層と、
前記接続サービスと前記メールボックスサービス層との間を通信可能に連結する第１の中間転送層であって、前記複数のクライアントメッセージングアプリケーションインスタンスから前記メールボックスサービス層へのメッセージの更新を転送する第１のインバウンドメッセージデータキューと、前記メールボックスサービス層から前記複数のクライアントメッセージングアプリケーションインスタンスの１つ以上への通信のための前記接続サービスへのメッセージの更新を転送する第１のアウトバウンドメッセージデータキューとを含む、前記第１の中間転送層と、
前記メールボックスサービス層と前記メッセージサービス層との間を通信可能に連結する第２の中間転送層であって、前記メッセージサービス層から前記メールボックスサービス層へのメッセージの更新を転送する第２のインバウンドメッセージデータキューと、前記メールボックスサービス層から前記メッセージサービス層へのメッセージの更新を転送する第２のアウトバウンドメッセージデータキューとを含む、第２の中間転送層と
を備えることを特徴とするシステム。
【請求項２】
前記メッセージサービス層は、少なくとも１つの電子メールメッセージサービスプロバイダを含む１つ以上の外部のメッセージサービスプロバイダと通信を行うことを特徴とする請求項１に記載のシステム。
【請求項３】
前記メッセージサービス層は、前記外部の電子メールメッセージサービスプロバイダでメンテナンスされるアカウントへのＩＭＡＰ接続をメンテナンスし、
前記複数のクライアントメッセージングアプリケーションインスタンスは、前記アカウントとやり取りする少なくとも２つのクライアントメッセージングアプリケーションインスタンスを含むことを特徴とする請求項２に記載のシステム。
【請求項４】
前記メールボックスサービス層と前記メッセージサービス層との１つ又は両方の中の２つ以上のメッセージの更新間での競合を解決する競合解決モジュールをさらに備えることを特徴とする請求項２に記載のシステム。
【請求項５】
前記メッセージサービス層は、電子メールメッセージをネイティブクライアントフォーマットへ変換するメッセージプロセッサを備えることを特徴とする請求項２に記載のシステム。
【請求項６】
電子メール添付物に対応するリソースを格納する添付サーバをさらに備え、
前記メッセージプロセッサは、電子メールメッセージの電子メール添付物を、前記添付サーバによって格納されるリソースの参照に変換することを特徴とする請求項５に記載のシステム。
【請求項７】
前記メッセージサービス層は、複数のサービスプロバイダモジュールを含み、
前記複数のサービスプロバイダモジュールのそれぞれは、異なる複数の外部のメッセージサービスプロバイダの１つとやり取りすることを特徴とする請求項１に記載のシステム。
【請求項８】
前記メールボックスサービス層は、メッセージの更新をメッセージに条件付きで適用する保留データエンジンを含むことを特徴とする請求項１に記載のシステム。
【請求項９】
前記接続サービスは、リアルタイムプロトコル接続を用いて複数のクライアントメッセージングアプリケーションインスタンスと通信を行うことを特徴とする請求項１に記載のシステム。
【請求項１０】
前記リアルタイムプロトコル接続は、圧縮ウェブソケット接続を含むことを特徴とする請求項９に記載のシステム。
【請求項１１】
接続サービスにおいて、複数のクライアントアプリケーションインスタンスのうちの第１のクライアントアプリケーションインスタンスからメッセージの更新を受信する工程と、
第１の転送層のインバウンドキューを通じてメールボックスサービス層へ前記メッセージの更新を送信する工程と、
前記メールボックスサービス層において、前記メッセージの更新を一時的に格納する工程と、
前記メールボックスサービス層から第２の転送層のメッセージサービスキューを通じてメッセージングサービス層へ前記メッセージの更新を送信する工程と、
前記メッセージングサービス層において、前記メッセージの更新を、メッセージサービスプロバイダと互換性のあるメッセージフォーマットへ変換する工程と、
前記メッセージングサービス層において、前記変換されたメッセージの更新を前記メッセージサービスプロバイダへ送信する工程と
を備えることを特徴とする方法。
【請求項１２】
前記メールボックスサービス層において、前記第１のクライアントアプリケーションインスタンスから発行された前記メッセージの更新と、前記メッセージサービスプロバイダから発行された他のメッセージの更新との間のメッセージ状態の整合性の競合を、前記メールボックスサービス層で解決する工程をさらに含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記メッセージ状態の整合性の競合を解決する前記工程は、
前記メッセージの更新のそれぞれにリビジョンの識別子を割り当てる工程と、
前記リビジョンの識別子に基づいて前記メッセージ状態の整合性の競合を解決する工程と
を含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記変換されたメッセージの更新をメッセージサービスプロバイダへ送信する前記工程は、
前記第１のクライアントアプリケーションインスタンスと関連付けられる電子メールアカウントの電子メールアップデートを、該電子メールアカウントをメンテナンスする電子メールサービスプロバイダへ送信する工程を含むことを特徴とする請求項１１に記載の方法。
【請求項１５】
前記メッセージの更新は、送信される新たな電子メールメッセージを含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記メッセージの更新は、電子メールメッセージのスレッドに適用される新たなラベルを含むことを特徴とする請求項１４に記載の方法。
【請求項１７】
メッセージサービス層において、メッセージサービスプロバイダから、アカウントに関連付けられたメッセージの更新を受信する工程と、
前記メッセージサービス層において、クライアントアプリケーションインスタンスによるネイティブレンダリングと互換性のあるメッセージフォーマットに前記メッセージの更新を変換する工程と、
メッセージサービスキューを通じてメールボックスサービス層へ前記変換されたメッセージの更新を送信する工程と、
前記メールボックスサービス層において、前記アカウントと関連付けられたクライアントアプリケーションインスタンスに、通信における前記メッセージの更新をキャッシュする工程と、
アウトバウンドキューを通じて接続サービスへ前記メッセージの更新を送信する工程と、
前記接続サービスから、前記アカウントに関連付けられた前記クライアントアプリケーションインスタンスへ前記メッセージの更新を通知する工程と
を含むことを特徴とする方法。
【請求項１８】
前記メッセージサービスプロバイダから受信される前記メッセージの更新と、前記アカウントに関連付けられた前記クライアントアプリケーションインスタンスから発行される他のメッセージの更新との間のメッセージ状態の整合性の競合を解決する工程をさらに含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記メッセージ状態の整合性の競合を解決する工程は、
前記メッセージの更新のそれぞれにリビジョンの識別子を割り当てる工程と、
前記リビジョンの識別子に基づき、前記メッセージ状態の整合性の競合を解決する工程と
を含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
クライアントアプリケーションインスタンスによるネイティブレンダリングと互換性のあるメッセージフォーマットに前記メッセージの更新を変換する前記工程は、
メッセージ添付物をファイルに変換する工程と、
添付サーバへ前記ファイルをアップロードする工程と、
前記添付サーバ上で前記ファイルの位置への参照を、前記変換されたメッセージの更新に含める工程と
を含むことを特徴とする請求項１７に記載の方法。
【請求項２１】
前記クライアントアプリケーションインスタンスへ前記メッセージの更新を通知する前記工程は、
前記クライアントアプリケーションインスタンスへのウィンドウ表示のメッセージの更新のセットの一部として、前記メッセージの更新を通知する工程を含むことを特徴とする請求項１７に記載の方法。
【請求項２２】
複数のクライアントアプリケーションインスタンスとメッセージサービスプロバイダとの間のメッセージを同期させる方法であって、
サーバプラットフォームのメッセージサービス層において、少なくとも１つの常時ＩＭＡＰ接続を通じて外部のメッセージサービスプロバイダと少なくとも１つのアカウントのメッセージの更新を同期させる工程と、
前記サーバプラットフォームのメールボックスサービス層において、前記外部のメッセージサービスプロバイダのメッセージフォーマットと、クライアントメッセージフォーマットとの間の電子メールメッセージの更新を変換する工程と、
前記サーバプラットフォームにおいて、前記外部のメッセージサービスプロバイダから発行されるメッセージの更新と、前記複数のクライアントアプリケーションインスタンスとの間の競合を解決する工程と、
前記メッセージサービス層と、前記メールボックスサービス層と、前記クライアントアプリケーションインスタンスとの間のメッセージの更新を協働して中継する工程と
を含み、
前記メッセージの更新は、前記クライアントメッセージフォーマットの前記複数のクライアントアプリケーションインスタンスへ中継され、前記外部のメッセージサービスプロバイダの前記メッセージフォーマットで前記外部のメッセージサービスプロバイダへ中継されることを特徴とする方法。
【請求項２３】
システムであって、
複数のクライアントメッセージングアプリケーションインスタンスと通信を行う接続手段と、
前記複数のクライアントメッセージングアプリケーションインスタンスの１つ以上から入ってくるメッセージの更新と、前記複数のクライアントメッセージングアプリケーションインスタンスの１つ以上へ向かうメッセージの更新を一時的に格納して処理するメールボックスサービス手段と、
１つ以上の外部のメッセージサービスプロバイダと通信を行うメッセージサービス手段と、
前記接続手段から前記メールボックスサービス手段へのメッセージの更新と、前記メールボックスサービス手段から前記接続手段へのメッセージの更新とをキューに入れて、転送する第１の転送手段と、
前記メールボックスサービス手段から前記メッセージサービス手段へのメッセージの更新と、前記メッセージサービス手段から前記メールボックスサービス手段へのメッセージの更新とをキューに入れて、転送する第２の転送手段と
を備えることを特徴とするシステム。
【請求項２４】
前記接続手段から前記メールボックスサービス手段へのメッセージの更新を転送するインバウンドキューイング手段と、
前記メールボックスサービス手段から、前記複数のクライアントメッセージングアプリケーションインスタンスの１つ以上へ通信を行うための前記接続手段へメッセージの更新を転送するアウトバウンドキューイング手段と
を備えることを特徴とする請求項２３に記載のシステム。
【請求項２５】
前記第２の転送手段は、
前記メッセージサービス手段から前記メールボックスサービス手段へメッセージの更新を転送するインバウンドキューイング手段と、
前記メールボックスサービス手段から前記メッセージサービス手段へメッセージの更新を転送するアウトバウンドキューイング手段と
を備えることを特徴とする請求項２３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にメッセージングの分野に関し、特に、メッセージングの分野におけるメッセージクライアントにサービスを提供する新規の有用なシステム及び方法に関する。
【背景技術】
【０００２】
電子メールは、現代社会において広く普及した通信形態である。電子メールは、他者とやり取りするためのツールを超えて、ユーザの生活及びビジネスを整理し且つ管理するためのツールに成長した。電子メールの重要性にも関わらず、電子メールの構造はＩＭＡＰ等の旧式の電子メールプロトコルに非常に依存している。プロトコルは、現在のコンピューティング環境のモバイル及びリアルタイムという特性を考慮して設計されていない。しかし、新しいメッセージングプロトコルが電子メールほど広く普及していないため、制限が多いにも関わらず、電子メールは依然として主要な通信形態の１つである。従って、メッセージングの分野において、メッセージクライアントにサービスを提供する新規の有用なシステム及び方法を作成する必要がある。本発明は、そのような新規の有用なシステム及び方法を提供する。
【発明の概要】
【０００３】
好適な一実施形態のメッセージクライアントにサービスを提供するシステム及び方法は、サービスプロバイダとインタフェースする更に効率的で応答の速いメッセージクライアントアプリケーションを提供するように機能する。システム及び方法は、クライアントアプリケーションインスタンスと電子メールサービスプロバイダとのインタフェースを容易にするが、その代わりに又はそれに加えて、ソーシャルメディアメッセージングサービス、インスタントメッセージングサービス、ニュース又はメディアストリームサービス、あるいは、あらゆる適切なメッセージサービスとインタフェースしてもよい。システム及び方法のいくつかの主な利点は、インテリジェントなメッセージストリームのローディング、リアルタイム非同期メッセージング動作、メッセージの書式設定の改善、オンライン／オフライン同期、更に応答の速いクライアントメッセージング動作のサポート及び／又は添付データの高速ローディングを含むことができる。そのような改善は、装置及びクラウドにおけるメッセージの協調管理により可能になるのが好ましい。システム及び方法は、電話、タブレット又はウェアラブルコンピュータ等の移動装置におけるメッセージクライアントアプリケーションを可能にするように設計可能であるが、あるいは、デスクトップコンピュータアプリケーション、ブラウザメールクライアント、ＴＶに接続されたコンピューティングデバイス又は何らかの適切なメールアプリケーション等のあらゆる適切なコンピューティングデバイスと共に使用されてもよい。
【図面の簡単な説明】
【０００４】
【図１】本発明の好適な一実施形態のシステムを概略的に示す図である。
【図２】本発明の好適な一実施形態の方法を示すフローチャートである。
【図３】ネイティブメッセージフォーマットのデータオブジェクトの一例を示す図である。
【図４】メッセージフォーマットのマッピングの例を示すテーブルである。
【図５】保留メッセージの更新を処理する通信フローを示す図である。
【図６】第２の好適な実施形態のメッセージを同期する方法の通信フローを示す図である。
【図７】第３の好適な実施形態のメッセージを同期する方法の通信フローを示す図である。
【図８】好適な一実施形態のメッセージの競合を解消する通信フローを示す図である。
【発明を実施するための形態】
【０００５】
本発明の好適な実施形態の以下の説明は、本発明をそれらの好適な実施形態に限定することを意図せず、当業者が本発明を作成及び使用できるようにすることを意図する。
１．メッセージクライアントにサービスを提供するシステム
図１に示すように、好適な一実施形態のメッセージクライアントにサービスを提供するシステムは、メッセージサービス層１１０と、メールボックスサービス層１２０と、クライアントアプリケーション１３０と、転送層１４０とを含んでもよい。システムは、既存のメッセージングサービスの代理となり且つ更に効率的で応答の速いメッセージクライアントアプリケーションを可能にするように機能する。システムは、電子メールサービスプロバイダとインタフェースするために使用されるのが好ましいが、その代わりに又はそれに加えて、ソーシャルメディアメッセージングサービス、インスタントメッセージングサービス、ニュース又はメディアストリームサービス、あるいは、あらゆる適切なメッセージサービスとインタフェースしてもよい。システムのいくつかの主な利点は、インテリジェントなメッセージストリームのローディング、リアルタイム非同期メッセージング動作、メッセージの書式設定の改善、オンライン／オフライン同期、更に応答の速いクライアントメッセージング動作のサポート及び／又は添付データの高速ローディングを含んでもよい。そのような改善は、装置及びクラウドにおけるメッセージの協調管理により可能になるのが好ましい。システムは、電話、タブレット又はウェアラブルコンピュータ等の移動装置におけるメッセージクライアントアプリケーションを可能にするように設計されるのが好ましいが、あるいは、デスクトップコンピュータアプリケーション、ブラウザメールクライアント、ＴＶに接続されたコンピューティングデバイス又は何らかの適切なメールアプリケーション等のあらゆる適切なコンピューティングデバイスと共に使用されてもよい。
【０００６】
システムは、メッセージサービス層１１０、第１の転送層１４０ａ、メールボックスサービス層１２０及び第２の転送層１４０ｂを含むバックエンドサーバインフラストラクチャを含むのが好ましい。バックエンドインフラストラクチャは、被管理分散型コンピューティングインフラストラクチャ、マルチテナントコンピューティングインフラストラクチャ、コンピューティングクラスタ又はあらゆる適切なインフラストラクチャにおいて実現可能である。構成要素は、プロバイダサーバ、負荷バランシング、キューイング、キャッシング、データベース、記憶装置又は他の構成要素として動作する種々のリソースを含んでもよい。バックエンドサーバインフラストラクチャは、クライアントアプリケーションをサポートするように実現されるのが好ましい。バックエンドインフラストラクチャは、メッセージプロバイダによりネイティブに提供されない高度な特徴をクライアントアプリケーション上で可能にする種々の設計特徴を含むのが好ましい。バックエンドインフラストラクチャは、クライアントアプリケーションの高度な特徴を調整する中間層として機能できる。
【０００７】
好適な一実施形態のメッセージサービス層１１０は、外部のメッセージサービスとインタフェースするように機能する。メッセージサービス層１１０は、分散型コンピューティングインフラストラクチャにおけるサーバであるのが好ましい。メッセージサービス層１１０は、メッセージサービスプロバイダとの間のメッセージ通信を管理するのが好ましい。メッセージサービスプロバイダは、Ｇｏｏｇｌｅメール、Ｙａｈｏｏメール、Ｈｏｔｍａｉｌ又は他のメールサービス等の電子メールプロバイダであるのが好ましい。あるいは、メッセージサービスプロバイダは、ソーシャルネットワークメッセージング、インスタントメッセージング又は何らかの適切なメッセージングサービス等の別の形態のメッセージングサービスとインタフェースしてもよい。メッセージサービス層１１０は、外部のサービスプロバイダとの調整を可能にするタスクを実行するように共同で動作するサーバ及びサービスの集合であるのが好ましい。メッセージサービス層１１０は、増加した要求をサポートするようにバックエンド層のサービスが変化できるように、負荷バランシングを含んでもよい。各メッセージサービスプロバイダがカスタム実現例を有する場合があるため、メッセージサービス層１１０は、少なくとも１つの指定されたメッセージサービスプロバイダに対するシステムのメッセージ処理を定義するプロバイダモジュール又は構成要素を含むことができる。プロバイダモジュールは、特に所定のサービスプロバイダに対して構成されるのが好ましく、メッセージフォーマットの問題、メッセージの更新の解釈、専用の特徴又は機能、並びに／あるいは、メッセージサービスプロバイダに特有であってもよいあらゆる適切な処理を説明するためのルール及び処理命令を含む。
【０００８】
電子メールサービスプロバイダの場合、メッセージサービス層１１０は、メッセージを受信及び操作するために常時ＩＭＡＰ（インターネットメッセージアクセスプロトコル）接続を使用するのが好ましい。常時ＩＭＡＰ接続は、アカウント毎に作成されるのが好ましい。ＩＭＡＰ接続を確立するメッセージサービス層１１０の利点は、クライアントアプリケーションの数に関わりなくＩＭＡＰ接続の制限を心配することなくメッセージと対話（やり取り）してもよい点である。例えばユーザは、種々の装置上で開いているクライアントアプリケーションの複数のインスタンスを有する場合があるが、クライアントアプリケーションが装置からのＩＭＡＰ接続を個別に維持するのではなく、各インスタンスがＩＭＡＰ接続を共有できる。送信メールは、ＳＭＴＰ（簡易メール転送プロトコル）接続又は何らかの適切なアウトバウンドメッセージプロトコル等の一般的な手段を介してメッセージサービスプロバイダに配信されるのが好ましい。それに加えて又はその代わりに、メッセージサービス層１１０は、ＰＯＰ  ＭＡＰＩ／Ｅｘｃｈａｎｇｅ、サービスＡＰＩ及び／又は何らかの適切な接続等の接続を使用してメッセージサービスプロバイダと対話できる。更に、メッセージサービス層１１０は、クライアント／メールボックスサービスから配信されたアカウント又はメッセージの更新をメッセージプロバイダ上で実行する適切な動作に変換する。アカウント又はメッセージの更新は、新規フォルダを追加すること、メッセージをフォルダに分類すること、メッセージに星印を付けること、フォルダにフラグを付けること、メッセージに既読／未読マークを付けること及び／又はクライアントアプリケーションとメッセージサービスプロバイダとの間のあらゆる適切な更新を含むことができる。メッセージサービス層１１０のサーバは、複数のメッセージングアカウントを管理するのが好ましい。
【０００９】
更に、メッセージサービス層１１０は、メッセージプロバイダからデータをシステム内で使用するために変換できる。会話パーサは、電子メールの新しい部分を抽出してメールボックスのネイティブフォーマット（固有のフォーマット）に変換できる。種々の送信元又は種々のサービスプロバイダからの電子メールは、異なるフォーマット又はメタデータを含む場合がある。電子メールサービスのフォーマットのいくつかの構成要素は、サービスプロバイダ内で特定の特徴を可能にするように設定されてもよい。メールボックスのネイティブフォーマットを変換する場合、メッセージフォーマットは、システム内で使用できる一貫した均一なメッセージフォーマットに正規化されるのが好ましい。メッセージフォーマットをネイティブ（固有の）メッセージフォーマットに正規化することは、システム内の他の構成要素の設計を単純化し且つ種々のメッセージ送信元をシステムに一体化できるように機能する。この場合、ネイティブメッセージフォーマットは、メッセージのコンテンツ及びパラメータを具体化するための標準化データモデリング方法を説明する。更に、メッセージサービス層１１０は、クライアントアプリケーション又はシステムの他の部分からのメッセージの更新をメッセージサービスプロバイダに適合する命令に変換する論理を含む。「全てをアーカイブに入れる」、「ごみ箱を空にする」、「未読マークを付ける」及び／又は何らかの適切なメッセージ更新動作等の動作は、メッセージサービス宛てのメッセージの更新の処理及び通信を指示する論理を含むのが好ましい。
【００１０】
更に、メッセージサービス層１１０は、フォルダ内のメッセージ数等のメッセージプロバイダのメタデータパラメータを格納してもよい。好適な一実施形態において、メッセージスレッドが主要なメッセージ形態である。従って、メッセージサービス層１１０は個々のメッセージをメッセージスレッドに変換するか又は組み込んでもよい。スレッドは、別のメッセージへの返信メッセージ、メッセージの転送、件名を共有するメッセージ、メッセージの一部分を引用するメッセージ及び／又はメッセージの何らかの適切なグループ化等のあらゆる適切な関連するメッセージであってもよい。メッセージサービス１１０は、プロバイダのスレッドＩＤ又は受信箱走査処理を使用して、スレッドにメッセージを追加するのが好ましい。
【００１１】
好適な一実施形態のメールボックスサービス１２０は、クライアントアプリケーションに対するメールボックスを管理するように機能する。メールボックスサービス１２０は、クライアントアプリケーション１３０及びメッセージサービス１１０に通信可能に連結される中間サーバであるのが好ましい。メールボックスサービス１２０は、第１の中間転送層１４０ａを用いてクライアントアプリケーション１３０に通信可能に連結され且つ第２の中間転送層１４０ｂを用いてメッセージサービス１１０に通信可能に連結されるのが更に好ましい。メールボックスサービス１２０は、最新のメッセージ通信に対して最適化されたカスタムネットワークプロトコルを活用するのが好ましい。プロトコルの一態様として、転送されたデータ、メッセージの更新が転送された時期を追跡し且つ当該データが適切に通信されることを保証するためにトークンシステムが使用されてもよい。あるいは、ＨＴＴＰ等の何らかの適切なプロトコルが使用されてもよい。メールボックスサービス１２０は、あらゆる数のサービスを提供してもよい。第１のサービスは、メッセージのウィンドウ化を含んでもよい。メッセージのウィンドウ化は、すぐに関係のあるメッセージのみがクライアントアプリケーションに転送されることを説明するのが好ましい。例えばメールボックスサービス１２０は、ユーザがまだ閲覧していない５００個の未読メッセージが存在する場合でも、ユーザが自身の受信箱にアクセスした時に１００個の最新メッセージに対する情報のみを転送するのが好ましい。メールボックスサービス層１２０又はメッセージサービス層１１０は、複数のメッセージストリームの状態及びウィンドウ化を管理できる。メッセージストリームは、異なるメッセージコレクションを説明するのが好ましい。クライアントアプリケーションは、メッセージストリームを設定するために頻繁なアクセスを提供するように設計可能である。電子メール受信箱フォルダは、１つのメッセージストリームであるのが好ましい。他のメッセージストリームは、アーカイブ、メッセージフォルダ、ラベル、特別なフォルダ（例えば、星印付きメッセージ又は保留メッセージ）及び／又は何らかの適切なメッセージコレクションを含むことができる。メッセージストリームをバックエンドインフラストラクチャ内に維持することにより、メッセージストリームを切り替える際の外部のサービスプロバイダのオンデマンドアクセスにより発生する遅延が回避される。メッセージの分類及び整理を適切に指示するために、ストリーム又はメッセージレコードが作成され且つ／又は変更されてもよい。例えばシステムは、分類履歴に従ってメッセージを更に整理できる。このように、メッセージを別のストリームに移動することにより、当該メッセージはクライアントアプリケーション上でユーザに対して提示される際にストリームの最上位に配置される。この分類整理は、時系列整理の最上位における上書き分類パラメータであってもよい。クライアントアプリケーションから更新を受信した場合、メールボックスサービス１２０は、更新をメッセージサービスの更新に更に変換してもよい。例えばメッセージがクライアントアプリケーション上の特定のリストに移動される場合、メールボックスサービスは、「メッセージスレッド１０４８をフォルダにコピーして削除するようＧｍａｉｌに指示する」という命令を作成してメッセージサービスに配信してもよい。
【００１２】
メールボックスサービス１２０は、保留データエンジンを更に含んでもよい。保留データエンジンは、条件が満たされた場合に条件付きでメッセージに動作が実行されるようにするように機能する。第１の変形例において、ユーザは、割り当てられたリマインダ条件と共にメッセージを保留メッセージリストに配置できる。リマインダ条件は通常は時間条件（例えば、「２４時間後にリマインドする」、「６月２２日にリマインドする」等）であるが、それに加えて又はその代わりに、リマインダ条件は、ユーザの地理位置、他のユーザの絶対地理位置、装置のユーザに対する他のユーザの地理位置、メッセージの別の受信者による返信、別のメッセージへの返信、装置のアクセス（例えば、デスクトップコンピュータ上で次回アクセスした時）、複数の条件に対するブール論理の組み合わせ、プログラム論理（例えば、アプリケーションプログラミングインタフェース、すなわち「ＡＰＩ」を介してアクセスされる）及び／又はあらゆる適切な条件であってもよい。条件が満たされると、遅延データエンジンは適切な動作を実行できる。動作又は応答は、メッセージ又はメッセージスレッドを受信箱に移動することであるのが好ましい。これは、データをクライアントアプリケーション及び／又はメールボックスサービスに送出することを含んでもよい。あるいは、動作は、別のフォルダに移動すること、事前に作成された返信を送出すること、メッセージをアーカイブに入れること、メッセージを削除すること、ソーシャルネットワーク上で共有すること、警報を送出すること又は何らかの適切な動作等のあらゆる適切な動作であってもよい。
【００１３】
メールボックスサービス１２０は、システム内で使用するのに適切なフォーマットにメッセージを変換するメッセージ処理モジュールを含んでもよい。１つの好適なメッセージ変換として、電子メールの本文は均一なフォーマットに変換される。これは、ＨＴＭＬフォーマットのメッセージをネイティブに変換可能なフォーマットに変換することを含むことができるのが好ましい。ネイティブに変換可能なフォーマットは、クライアントアプリケーション上でネイティブにレンダリングするために構成されるフォーマットである。これは、移動装置上での遅く且つ大量のリソースを使用するＨＴＭＬレンダリングを回避するように機能する。更に、ＨＴＭＬコンテンツは、メッセージが単純化され且つ一貫した提示を有するように、正規化されるか、不要な部分が取り除かれるか又はストリップされてもよい。更に、メッセージのコンテンツは、システム内でメッセージコンテンツを保護するために難読化されてもよい。メッセージサービス層１１０は、添付データのフォーマットの変換を容易にするように構成された構成要素を更に含むことができる。添付データは、電子メールにおける写真又はファイルの添付等のメッセージコンテンツに含まれるメディアファイルであるのが好ましい。サービスは、添付データをメッセージのインライン項目に変換するのが好ましい。添付データサービスは、インライン項目におけるメディアリソース参照を格納し且つホストするのが好ましい。
【００１４】
好適な一実施形態のクライアントアプリケーション１３０は、メッセージに対するユーザインタフェース及び対話機能性を提供するように機能する。クライアントアプリケーション１３０は移動装置に対するものであるのが好ましいが、あるいは、デスクトップコンピュータ、テレビに接続されたコンピューティングデバイス、ウェブサイト、ブラウザのプラグイン又は何らかの適切なデバイスアプリケーションに対するアプリケーション等のあらゆる適切なデバイスアプリケーションに対するものであってもよい。本明細書中、クライアントアプリケーションを参照することは、装置にインストールされた一種のクライアントアプリケーションのインスタンスを示す。クライアントアプリケーションの複数のインスタンスが異なる装置及び／同一の装置上で有効になれる。異なるアプリケーションインスタンスは、異なるアプリケーション又はアプリケーションのリビジョンを動作するインスタンスを更に含むことができる。クライアントアプリケーション１３０は、ＨＴＭＬウェブビューではなくネイティブにレンダリングされたビューを用いてメッセージを解釈するのが好ましい。あるいは、ＨＴＭＬをレンダリングする欠点が殆どない場合、ＨＴＭＬビューがクライアントアプリケーションにおいて使用されてもよい。クライアントアプリケーション１３０は、クライアントアプリケーションとメールボックスサービス１２０との間でメッセージをシームレスに同期するように機能する非同期メッセージ通信モジュールを含むのが好ましい。非同期メッセージ通信モジュールは、メッセージがロード及び送出されるのを待つユーザの負担を軽減するのが好ましい。非同期メッセージ通信モジュールは、ユーザ対話を妨げることなくバックグラウンドでネットワーク通信を実行するのが好ましい。クライアントアプリケーション１３０は、構成された少なくとも１つのメッセージアカウントを有するのが好ましいが、複数のメッセージアカウントを有してもよく、更に、メッセージアカウントは異なる種類であってもよい（例えば、電子メール及びソーシャルメディア）。あらゆる適切なインタフェースがクライアントアプリケーション１３０により使用されてもよいが、ジェスチャ利用メッセージ分類インタフェースは、メッセージ通信システムのリアルタイムであり且つ応答が速いという特性を活用するのが好ましい。
【００１５】
好適な一実施形態の転送層１４０は、メッセージサービス１１０、メールボックスサービス１２０及びクライアントアプリケーション１３０の間の通信を調整するように機能する。少なくとも２つの転送層１４０ａ及び１４０ｂが存在するのが好ましい。第１の転送層１４０ａは、メッセージサービス１１０とメールボックスサービス１２０とを通信可能に連結するのが好ましい。第２の転送層は、メールボックスサービス１２０とクライアントアプリケーション１３０とを通信可能に連結するのが好ましい。転送層１４０は、双方の通信方向においてメッセージ及びデータ通信をキュー（待ち行列）に入れるのが好ましい。クライアント／メールボックス転送層は、送出メッセージ、メッセージ動作及び他の通信をメールボックスに対するインバウンド待ち行例に入れるのが好ましい。更に、クライアント／メールボックス転送層は、新規の電子メールメッセージ、スレッドの更新及びクライアントの応答（例えば、電子メールの送出完了、メッセージ保留完了）を含んでもよいクライアントに対するデータ及び応答を待ち行例に入れる。メッセージサービス／メールボックス転送層は、メールボックスからの電子メールサービス作業をメッセージサービスに対するインバウンドキューに入れるのが好ましい。更に、メッセージサービス／メールボックス転送層は、メッセージデータの更新をメールボックスサービスに対するインバウンドキューに入れる。キューはｒａｂｂｉｔＭＱを使用するのが好ましいが、何らかの適切なキューフレームワークを使用してもよい。第２の転送層１４０は、接続サービスを更に含んでもよい。接続サービスは、クライアントアプリケーションからメールボックスサービスへの全ての接続を管理するのが好ましい。接続サービスは、クライアントアプリケーションのストリーム接続を許可し且つ確立するのが好ましい。複数のクライアントアプリケーションインスタンスが接続サービスへのストリーミング接続を有してもよく、接続サービスは、クライアント宛てデータを複数のクライアントアプリケーションに多重伝送する。例えばユーザは、ストリーム接続を用いる有効なクライアントアプリケーション（同一アカウントに対して構成された）を有する複数の装置を有してもよい。アウトバウンドメッセージは、種々のクライアントアプリケーションインスタンスに配信するために複数のストリーム接続にわたり同時に送信されるのが好ましい。装置毎に独立して維持される接続は、ほぼ同時に使用される。更に、接続サービスは、クライアントアプリケーションのリビジョン制御を管理し、サイズ選択データ圧縮、並びに／又は他の何らかの追加の接続及びストリーミングサービスを実現してもよい。
【００１６】
システムは、システムの分散部分の間のメッセージ管理における競合を解消するように機能する競合解消モジュールを更に含んでもよい。システムのサービスに提示される何らかの動作又は通信は、改訂識別子を含むトランザクション単位であるのが好ましい。改訂識別子は、現在のメッセージデータが最新であるか、現在有効なメッセージであるかを示すのが好ましい。これは、システム内のメッセージデータオブジェクトとメッセージのネイティブ環境（例えば、電子メールプロバイダ）とを最終的に一致させるために使用される。更に、改訂識別子は、クライアントアプリケーション内からユーザにより実行される動作を一貫性を解決するためにシステム内で処理される順序にするために、競合解消モジュールにより適用される。更に、システムは、動作がシステム内でオブジェクトに対してアトミックに完了されるように構成される。システムのいずれかの特定の部分における状態は他の部分と一致しなくてもよいが、メッセージプロバイダの状態と最終的に一致するのが好ましい。例えばユーザがメッセージを異なるフォルダに移動する場合、これらの移動はシステムを通って伝搬し、最終的にメッセージプロバイダがそれらの変更を反映する。競合が発生する場合、特定の構成要素からの状態が他の構成要素より優先される。いくつかの状況において、競合解消モジュールは、何らかの適切な動作が競合状態において優先されるようにしてもよい。競合解消モジュールの更なる態様は、メッセージシステム内でメッセージの会話、スレッド又はメッセージコレクションに対して実行される何らかの動作が、スレッドに到着した新規メッセージの数に対応する文書レベルの改訂を有するのが好ましい点である。これは、いずれかのメッセージサービスプロバイダから到着する受信箱フォルダからの新規電子メールがスレッドを受信箱に移動させるように機能する。
２．メッセージクライアントにサービスを提供する方法
図２に示すように、好適な一実施形態のメッセージクライアントにサービスを提供する方法Ｓ１００は、メッセージサービスにおいて外部のメッセージサービスとメッセージを同期すること（Ｓ１１０）と、メールボックスサービスにおいてプロバイダのメッセージフォーマットとクライアントのメッセージフォーマットとの間で変換すること（Ｓ１２０）と、メールボックスサービスにおいて保留メッセージを管理すること（Ｓ１３０）と、クライアントアプリケーションにおいてクライアントのメッセージフォーマットのメッセージをネイティブに解釈すること（Ｓ１４０）と、メッセージサービス、メールボックスサービス及びクライアントアプリケーションの間でメッセージを協調して中継すること（Ｓ１５０）とを含んでもよい。方法は、既存のメッセージサービスをリアルタイムで応答の速いメッセージングインタフェースに要約するように機能する。方法は、高速で応答の速い電子メールアプリケーションを作成するために使用されるのが好ましい。方法は、電子メールサービスと一致させるために電子メールサービスと同期する一方で、既存の電子メールサービス及びメッセージを新規の改善された機能性に対して変形するのが好ましい。方法は、クライアントアプリケーションインタフェースを用いる分散型コンピューティングシステムとして使用されるのが好ましい。方法により、ユーザは改善された通信機能と共に既存のメッセージアカウントを使用できる。方法は、上述のシステムとほぼ同様のシステムを通じて実現されるのが好ましいが、あらゆる適切なシステムが代わりに使用されてもよい。方法Ｓ１００は、２種類の同期の実施形態、すなわち、クライアントアプリケーションからメッセージングサービスへのメッセージデータを同期する方法Ｓ２００と、メッセージサービスから少なくとも１つのクライアントアプリケーションへのメッセージデータを同期する方法Ｓ３００とを更に含んでもよい。方法Ｓ１００、方法Ｓ２００及び方法Ｓ３００は、あらゆる適切な組み合わせで使用可能である。
【００１７】
メッセージサービスにおいて外部のメッセージサービスとメッセージを同期することを含むブロックＳ１１０は、外部のメッセージサービスプロバイダとインタフェースするように機能する。好適な一実施形態において、外部のメッセージサービスは、Ｇｍａｉｌ、Ｙａｈｏｏ  Ｍａｉｌ、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅ等の電子メールサービスプロバイダであるが、あるいは、ソーシャルネットワークＡＰＩ、インスタントメッセージングサービス又は何らかの適切なメッセージングサービスプロバイダであってもよい。電子メールプロバイダとインタフェースするメッセージサービスは、アカウント毎に常時ＩＭＡＰ接続を管理するのが好ましいが、あるいは、接続は、ＰＯＰ、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅ、サービスＡＰＩ及び／又は何らかの適切な接続であってもよい。単一のＩＭＡＰ接続が、同一サービスアカウントの複数のメールボックスクライアントアプリケーションインスタンスにより使用されるのが好ましい。外部のメッセージサービスとメッセージを同期することは、メッセージサービスプロバイダからインバウンドメッセージを検索することを含むことができる。インバウンドメッセージが会話の一部である場合、メッセージを同期することは、会話をパースすることと、メッセージの新しい部分を抽出することと、当該部分をメールボックスサービスのフォーマットに変換することとを含んでもよい。外部のメッセージサービスとメッセージを同期することは、メッセージサービスプロバイダへクライアントのメッセージ対話を送信することを更に含むことができる。これは、アウトバウンドメッセージを送出すること、メッセージの状態を変更すること（例えば、既読マークを付けること）、メッセージの整理の状態を変更すること（例えば、メッセージをフォルダに移動すること、ラベルを追加すること、カテゴリに参照を追加すること）、並びに／あるいは、メッセージサービスプロバイダに通信される必要があるだろう何らかの適切な動作を含んでもよい。更に、同期することにより、メッセージのメタデータの追跡が管理されてもよい。例えばメッセージサービスは、特定のフォルダ内のメッセージ及び／又は未読メッセージの数を数えるか又は追跡してもよい。
【００１８】
メールボックスサービスにおいてプロバイダのメッセージフォーマットとクライアントのメッセージフォーマットとの間で変換することを含むブロックＳ１２０は、メッセージフォーマットを受信側のメッセージフォーマットに変換するように機能する。メッセージングサービスからのインバウンドメッセージは、クライアントのネイティブ（固有の）メッセージフォーマットに変換されるのが好ましい。ネイティブメッセージフォーマットは、簡素化されたデータフォーマットであるのが好ましく、効率的な配信及びクライアントアプリケーションによるレンダリングに対して設計される。ネイティブメッセージフォーマットに変換することは、ＨＴＭＬフォーマットのメッセージをネイティブレンダリングフォーマットに変換することを含んでもよい。ネイティブメッセージフォーマットは、望ましくないコンテンツスタイリング属性及び不要な情報のコンテンツを取り除くのが好ましい。ネイティブのレンダリングフォーマットは、メッセージの側面をデータ交換オブジェクトのパラメータにパラメータ化するのが好ましい。１つの変形例において、ネイティブメッセージフォーマットは、図３に示すようなＪＳＯＮオブジェクトである。図４に示すように、メッセージコンテンツの書式設定／スタイリング属性は、ネイティブにレンダリングされた異なるパラメータにマッピングされるのが好ましい。例えば段落タグ、ｄｉｖタグ、ｈｔｍｌタグ、ｈｅａｄｅｒタグ、ｂｏｄｙタグ及び他の適切なタグは空の文字列に置き換えられるのが好ましく、太字タグは太文字列パラメータに置き換えられ、アンカータグはテキスト及びＵＲＩ参照の詳細を示すリンクパラメータに置き換えられ、且つ／あるいは、あらゆる適切なタグがメッセージに対して定義されたパラメータにマッピングされてもよい。ネイティブメッセージフォーマットは、クライアントアプリケーションにおいてメッセージの全体又は一部を選択的にネイティブ又はＨＴＭＬでレンダリングできるようにする「ｉｓ  ＨＴＭＬ」パラメータを更に含むことができる。１つの更なる利点は、これによりメッセージコンテンツに対する一貫したスタイルを適用できることである。
【００１９】
変換することは、システムの添付データサービスに添付ファイルをアップロードすることと、添付データをインライン項目に変換することとを含んでもよい。この副処理は、電子メールに関連する使用例に特に適用可能である。添付データの変換は、他のメディアメッセージングのメッセージプロトコル及び媒体に同様に適用可能である。メッセージを更に効率的に送信でき、より柔軟で多様な方法で添付データを使用できる。添付データサービスへのアップロードは種々のアプリケーションを含むことができる。１つの変形例において、メッセージサービスは、オンラインデータホスティングソリューション（例えば、Ｄｒｏｐｂｏｘサービス）と同期し、添付データサービスとのインタフェースにより更に豊富な対話機能が可能になる。例えばクライアントアプリケーションの他のユーザと添付データを共有することにより、添付データのリソースへのアクセスが共有される。換言すると、双方のユーザがインライン参照ファイルにアクセスできるため、添付データの１つのインスタンスのみが必要であってもよい。更に、メッセージは難読化されてもよく、これはプライバシーレベルを追加するように機能する。難読化されたメッセージは、メッセージがシステムを通過させられる際にユーザが読むことができないフォーマットである。難読化処理は、クライアントアプリケーション又はメッセージングサービスプロバイダに配信される場合は反転される。アウトバウンドメッセージ及び他のクライアントメッセージ対話は、メッセージサービスの更新に変換されるのが好ましい。例えば新規電子メールが送出されてもよく、電子メールは、メッセージサービスに配信するためのフォーマットに変換されてもよい。別の例において、ユーザはクライアントアプリケーション上でメッセージをアーカイブに入れてもよく、メッセージサービスはメッセージをアーカイブに入れるために更新する。
【００２０】
メールボックスサービスにおいて保留メッセージを管理すること（Ｓ１３０）を含むブロックＳ１３０は、自動保留メッセージの特徴を可能にするように機能する。保留メッセージエンジンは、上述したのとほぼ同様に保留メッセージを管理するのが好ましい。あるいは、保留メッセージは、メッセージングシステムの何らかの適切な構成要素における保留メッセージエンジンにより管理されてもよい。保留メッセージを管理することは、保留メッセージの更新を受信することと、条件の確認のために保留メッセージを監視することと、条件が有効になった場合にメッセージ応答をトリガすることとを含むのが好ましい。保留メッセージを管理することは、条件が満たされるまでメッセージを受信箱から削除する特徴を可能にするために使用可能である。条件は通常は時間に基づく条件であるが、あるいは、ユーザの地理位置、他のユーザの絶対地理位置、装置のユーザに対する他のユーザの地理位置、メッセージの別の受信者による返信、別のメッセージへの返信、装置のアクセス（例えば、デスクトップコンピュータ上で次回アクセスした時）、複数の条件に対するブール論理の組み合わせ、プログラム論理（例えば、ＡＰＩを介してアクセスされる）に基づく条件及び／又はあらゆる適切な条件であってもよい。１つの変形例において、メッセージ応答は、メッセージを受信箱に追加することである。他のメッセージ応答は、メッセージを別のフォルダに移動すること、事前に作成された返信を送出すること、メッセージをアーカイブに入れること、メッセージを削除すること、ソーシャルネットワーク上で共有すること、警報を送出すること又はあらゆる適切な動作を含んでもよい。
【００２１】
図５に示すように、保留メッセージを管理すること（Ｓ１３０）は、保留動作を示すメッセージの更新を受信することと、メッセージの保留状態を反映するためにメッセージを更新することと、条件が満たされた場合にメッセージに対する選択された動作を呼び出すこととを含むのが好ましい。保留動作のメッセージの更新は、好ましくはメッセージ保留オプション（例えば、保留メッセージストリームへの項目の移動）の有効なユーザによる選択に応答して、クライアントアプリケーションから発信される。受信されると、メッセージは新しい場所に移動されるのが好ましい。保留された全てのメッセージを含む特別なメッセージフォルダ、リスト又はストリームが存在するのが好ましい。別の変形例において、保留メッセージを更に細かく分けるために、フォルダ又はラベルが作成されてもよい（例えば、翌日まで保留されるフォルダ、翌週まで保留されるメッセージ、１年以上保留されるメッセージ）。あるいは、メッセージは、アーカイブに入れられるか、変更されないか又は何らかの適切な方法で処理されてもよい。メッセージが再度整理される場合、これはメッセージングサービスプロバイダに通信され且つ同期されるのが好ましい。保留動作は、メッセージサービスプロバイダの保留動作に対して透明であるのが好ましい。メッセージサービスプロバイダは、メッセージが新規フォルダに移動されることを単に認識する。更に、保留データエンジンは、条件がトリガされるメッセージ及び条件に対する参照を格納するために、保留されたデータソースを更新するのが好ましい。保留メッセージを管理することは、保留メッセージの条件変数を監視することを更に含むことができる。条件が時間条件である場合、保留メッセージ動作を実行するように保留データエンジンに知らせるようにサービスを設定するために、時間警告又はスケジューリングシステムを使用できる。条件が予測できないか又は動的な性質である場合、システムは、それらの条件を積極的且つ継続的に監視してもよい。条件が満たされると、サービスはメッセージに対する条件付き動作を呼び出す。動作を呼び出すことにより、変化がメッセージサービスプロバイダ及びクライアントアプリケーションと同期されるのが好ましい。動作は、メッセージを受信箱に移動することを含む通知動作であるのが好ましい。メッセージを受信箱に移動することは、高い優先順位を付与してメッセージを受信箱に移動することを含むのが更に好ましい。高い優先順位を付与することは、メッセージが受信箱の最上位に表示されるように設定すること、メッセージにフラグを付けること、未読マークをつけること、メッセージの緊急性を高くすること、あるいは、メッセージに注目させるためのメッセージ及び／又はメッセージスレッドに対する何らかの適切な変更を含むことができる。遅延データエンジンは、メッセージを移動するためにメッセージ更新要求を作成するのが好ましい。システムの動作を介して、当該更新はメッセージサービスプロバイダに伝送される。メッセージサービスプロバイダに対する更新と同時に又はそれに応答して、メッセージを受信箱に移動するという要求がクライアントアプリケーションに通知される。
【００２２】
クライアントアプリケーションにおいてクライアントのメッセージフォーマットのメッセージをネイティブ（固有に）に解釈することを含むブロックＳ１４０は、メッセージの更新及び対話を表示及び受信するように機能する。メッセージは、メールボックスサービスからネイティブメッセージフォーマットで受信されるのが好ましい。メッセージは、ネイティブなアプリケーションビューのツールがメッセージコンテンツのネイティブにレンダリングされたリビジョンを作成する際に使用されてもよいように、メッセージの書式設定を符号化するのが好ましい。いくつかの変形例において、入力されるＨＴＭＬ電子メールからの書式設定は完全に除去されてもよい。他の変形例において、少なくとも書式設定のサブセットは、保存されるがネイティブビュー書式設定を介してレンダリングされてもよい。ネイティブなレンダリングに依存することにより、表示要素の更に効率的なレンダリングが可能になり、クライアントアプリケーションが速く応答するように見えるという利点を有する。クライアントアプリケーションにおける対話は、ユーザ入力に積極的に応答し且つ接続サービスへの通信を延期するのが好ましい。クライアントアプリケーションは、ロバストな非同期データ、メッセージ及びメッセージの更新の通信に依存するのが好ましい。例えばクライアントアプリケーションは、コンテンツのダウンロード又はコンテンツのアップロードに対する進行指標の視覚要素（例えば、スピナー）を避けることができてもよい。
【００２３】
メッセージサービス、メールボックスサービス及びクライアントアプリケーションの間でメッセージを協調して中継することを含むブロックＳ１５０は、クライアント装置とメッセージサービスとの間のメッセージのメッセージ配信を調整するように機能する。メッセージを中継することは、クライアントアプリケーションへのインバウンドメッセージを待ち行例に入れることと、クライアントアプリケーションからのアウトバウンドメッセージをキューに入れることと、メールボックスサービスへのメッセージデータを待ち行例に入れることと、メッセージサービスに対するメッセージの更新をキューに入れることとを含むのが好ましい。上述のように、クライアントアプリケーションとメールボックスサービスとの間の双方向通信を管理するための２つのキューと、メールボックスサービスとメッセージングサービスとの間の双方向通信を管理するための２つのキューとが存在してもよい。キューは、１つの通信方向に対するデータ及びメッセージの通信を管理する。データ及びメッセージの通信は、リアルタイム通信プロトコルを用いて通信されるのが好ましい。一実現例において、リアルタイム通信を容易にするためにｎｏｄｅ．ｊｓ及びウェブソケットが使用される。クライアントアプリケーションは、接続及びデータストリーミングを管理する接続サービスとの接続を確立してもよい。更に、メッセージは、クライアントアプリケーションとの通信においてウィンドウ化されるのが好ましい。特定のフォルダ又はストリーム内の全てのメッセージを送出するのと異なり、特定のウィンドウ内のメッセージ／スレッドのみが転送される。例えばユーザがクライアントアプリケーション上でフォルダを閲覧する場合、メールボックスサービスはフォルダの５０個の最新メッセージのみを中継するのが好ましい。更に、メッセージを中継する場合、メッセージ通信に対して設計される専用のネットワーク通信プロトコルが使用されてもよい。あるいは、ＨＴＰＰ又は何らかの適切なプロトコルが使用されてもよい。
【００２４】
更に、方法は、中継メッセージの競合を解消することを含んでもよく、これは、メッセージの状態を最終的に一致させるように機能する。方法は、異なる装置に分散された複数の構成要素を用いて実現されるのが好ましい。通信が非同期であり且つキューに入れられることにより、クライアントアプリケーションの速度及び応答性は非常に速くなるが、場合によっては、メッセージの状態が異なるモジュール間で一致しないことがある。メッセージプラットフォームのいずれか１つの構成要素の状態は、内部で一致した状態を維持するのが好ましい。特に、クライアントアプリケーションは、クライアントアプリケーション上でのメールの状態を維持しつつ、あらゆる数のメッセージ対話を実行できる。例えばクライアントアプリケーションがネットワークにアクセスできない場合、ユーザはメッセージを読み、送出し、削除し且つ整理し続けられるのが好ましい。これらの変更は、クライアントアプリケーションがネットワークにアクセスできるようになった時にメールボックスサービスを介してメッセージサービスプロバイダに通信されるのが好ましい。メッセージの動作及びデータは、改訂番号を用いてマークを付けられるのが好ましい。状態の不一致は、改訂番号に従って解消されるのが好ましい。更に、メッセージシステムの異なる構成要素間で状態の優先順位が存在してもよい。例えば多くの場合、メッセージサービスはメッセージプロバイダと直接通信するため、メッセージサービスサーバにより設定されたメッセージの状態は他の構成要素より高い優先順位を有するのが好ましい。
【００２５】
更に、好適な一実施形態の方法は、メッセージデータの添付データを内部でルーティングされるデータファイルに変換することを含んでもよい。これは、添付データをメッセージコンテンツではなくアクセス可能なリソースとして処理するように機能する。電子メール又は他のメッセージの添付データはインライン添付データに変換されるのが好ましい。添付データは添付データサーバにアップロードされるのが好ましく、添付データのリソースへの参照がメッセージに含まれる。同様の変形例において、不必要な添付データ（例えば、電子メールの署名画像）が自動検出されてもよく、添付データはメッセージから完全に除去されるか又は隠されてもよい。ユーザが添付データを閲覧したい場合、ユーザはリンク又はボタンを有効にし、その結果、添付データサーバにおいて添付データが検索される。添付データは未変更であってもよいが、元のファイルの変更されたリビジョンであってもよい。例えば画像はモバイルで閲覧するためにサイズを縮小されてもよく、あるいは、他のメディアの種類は装置上で閲覧するために変換されてもよい。添付データサーバ／サービスは、元のファイルの変更された形態を自動的に生成してもよい。ピクチャは、アプリケーション内で使用するために生成された種々のサイズのセットを有してもよい。テキスト文書は、電子メール内で更に容易に使用される別のフォーマットに変換されてもよい。音楽又は映像ファイルは、クライアントアプリケーションにストリーミングするために変換されてもよい。更に、添付データは、ファイルホスティングサービスのユーザアカウントと同期可能である。例えばユーザは、Ｄｒｏｐｂｏｘ等のクラウドファイル同期プラットフォームに対するアカウントを認証してもよく、添付データは、ユーザアカウントのクラウドファイルシステムと同期可能である。
【００２６】
図６に示すように、好適な一実施形態のクライアントアプリケーションとメッセージサービスプロバイダとの間でメッセージを同期する方法Ｓ２００は、接続サービスとクライアントアプリケーションとの間の複数のリアルタイム接続を維持すること（Ｓ２１０）と、クライアントアプリケーションとの接続を介してメッセージの更新を受信すること（Ｓ２２０）と、第１の転送層のインバウンドキューを介してメッセージングサービス層へメッセージの更新を送信すること（Ｓ２３０）と、メッセージの更新を一時的に格納すること（Ｓ２４０）と、第２の転送層のメッセージサービスキューを介してメールボックスサービス層へメッセージの更新を送信すること（Ｓ２５０）と、メッセージの更新をメッセージサービスプロバイダに適合するメッセージフォーマットに変換すること（Ｓ２６０）と、変換されたメッセージの更新をメッセージサービスプロバイダへ送信すること（Ｓ２７０）とを含む。方法Ｓ２００は、クライアントアプリケーションからメッセージサービスプロバイダへメッセージの更新を配信するように機能する。メッセージの更新は、新規メッセージ、メッセージに対する返信、転送メッセージ、メッセージの削除、メッセージのアーカイブ、フォルダ／リスト／カテゴリへのメッセージの分類又は整理、メッセージに既読／未読マークを付けること、並びに／あるいはあらゆる適切なメッセージの動作又は変更を含むことができる。上記の実施形態と同様に、方法は、クライアントアプリケーションが電子メールプロバイダ等の既存のメッセージプロバイダとインタフェースできるようにすると同時に、複数の最新のアプリケーションの特徴を提供する。例えば方法Ｓ２００は、リアルタイム接続機能、応答の速いオンライン／オフラインメッセージ処理及びメッセージのネイティブなレンダリング等をアプリケーションに提供する。方法Ｓ２００はメッセージサービスプロバイダへのメッセージの送信を説明するが、方法Ｓ２００は、他の説明される方法及び／又はそれらの変形例と共に実現されるのが好ましい。
【００２７】
接続サービスとクライアントアプリケーションとの間の複数のリアルタイム接続を維持することを含むブロックＳ２１０は、多くのリモートユーザ装置上で動作可能なアプリケーションとの通信チャネルを確立するように機能する。ブロックＳ２１０は、管理された接続を用いて接続サービスにおいて実現されるのが好ましい。ユーザがクライアントアプリケーションを開いた場合、クライアントアプリケーションはバックエンドインフラストラクチャのホストを呼び出すのが好ましい。その後、接続サービスは、開いた通信チャネルを作成する。１つの変形例において、接続サービスはウェブソケット接続を作成する。バックエンドインフラストラクチャは、共有リソース上のアカウントにサービスを提供するために実現されるのが好ましく、従って、接続サービスは、複数のアカウントに対する接続を維持するのが好ましい。更に、１つのアカウントに対するクライアントアプリケーションの複数のインスタンスは、２つ以上の確立された接続を有してもよい。メッセージの更新は、いずれの接続においても受信可能である。接続を確立する場合、クライアントアプリケーションのアカウントが認証されるのが好ましい。ブロックＳ２１０は、クライアントアプリケーションのリビジョン制御を管理することを更に含むことができる。クライアントアプリケーションとの接続が確立される場合、接続サービスはクライアントアプリケーションのリビジョン番号を確認する。リビジョン番号に基づいて、クライアントアプリケーションを無効にでき、特徴を無効／有効にでき、アップグレード通知を配信でき、あるいは、何らかの適切な動作を実行できる。
【００２８】
クライアントアプリケーションとの接続を介してメッセージの更新を受信することを含むブロックＳ２２０は、クライアントアプリケーションにより開始されたメッセージ、メッセージスレッド、メッセージの整理又はメッセージングアカウントに対する変更を受信するように機能する。開始されたメッセージの更新は、ユーザの動作に応答してバックエンドインフラストラクチャへ送信されるのが好ましい。１つの変形例において、単一のメッセージの更新が特定の時点でバックエンドインフラストラクチャに配信される。１つの変形例において、クライアントアプリケーションは、オフラインのメッセージ対話を可能にするように構成可能である。オフラインクライアントアプリケーションにおいて、ユーザは、ネットワークに接続せずに、表面上で、メッセージを変更し、メッセージを整理し、メッセージを削除し、メッセージを送出又は編集し、あるいは、あらゆる適切なメッセージの更新を行うことができる。クライアントアプリケーションは、メッセージの状態を維持するのが好ましく、改訂識別子を用いて内部でメッセージの更新にマークを付ける。クライアントアプリケーションがネットワークへの接続を確立する場合、接続サービスへの接続を介してメッセージの更新のバッチをアップロードできる。改訂識別子は、インフラストラクチャへのメッセージの更新に含まれるのが好ましく、クライアントアプリケーションがオフラインの間にメッセージサービスプロバイダにより発行されたメッセージの更新との競合を解消するために使用できる。説明したように、クライアントアプリケーションにおけるメッセージとメッセージサービスプロバイダにおけるメッセージとは最終的に一致する。
【００２９】
第１の転送層のインバウンドキューを介してメールボックスサービス層へメッセージの更新を送信することを含むブロックＳ２３０は、メールボックスサービス層へメッセージの更新をスケーラブルに転送するように機能する。メッセージキューは、クライアントアプリケーションインスタンスを介する種々のアカウントからのメッセージの更新の流入を処理する。１つの変形例において、単一のインバウンド待ち行例が全てのアカウントに対して使用されるが、あるいは、負荷又は処理負荷を分散するために、複数のピアにメッセージの更新を動的に配信できる。インバウンドキューは、ｒａｂｂｉｔＭＱ又はあらゆる適切なキューサービスを使用できる。メッセージの更新は、メールボックスサービス層の利用可能な容量に基づく割合でインバウンドキューから取り出されるのが好ましい。
【００３０】
メッセージの更新を一時的に格納することを含むブロックＳ２４０は、メッセージの更新をキャッシュして事前処理を実行するように機能する。ブロックＳ２３０はメールボックスサービスにおいて実行されるのが好ましく、メールボックスサービス層は、メッセージの更新をメッセージサービスの命令に変換するのが好ましい。例えばメッセージをアーカイブに入れるというメッセージの更新は、アーカイブに入れられる特定の電子メールスレッドを示す電子メールサービスの更新に変換可能である。更に、メールボックスサービスは電子メールメッセージを難読化でき、それにより、メッセージはユーザが実質的に読めないフォーマットになる。
【００３１】
ブロックＳ２３０と同様に、第２の転送層のメッセージサービスキューを介してメッセージングサービス層へメッセージの更新を送信することを含むブロックＳ２５０は、メッセージサービス層にメッセージの更新を転送するように機能する。ブロックＳ２４０は、ブロックＳ２２０とほぼ同様である。キューは、メールボックスサービス層により変換されたメッセージの更新を保持するのが好ましい。あるいは、キューは、あらゆる適切な形態のメッセージの更新を保持できる。
【００３２】
メッセージの更新をメッセージサービスプロバイダに適合するメッセージフォーマットに変換することを含むブロックＳ２６０は、メッセージサービスプロバイダへ送信するためにメッセージを用意するように機能する。変換は、上述した変換とほぼ同様である。メッセージの更新が新規のメッセージコンテンツを含む場合、ネイティブのメッセージの書式設定は適切なｈｔｍｌ要素又はプレーンテキストコンテンツに変換されるのが好ましい。変換は、メッセージの更新がキューから取り出されてメッセージサービス層で受信された際にメッセージサービス層において行われるのが好ましい。メッセージサービス層は、更新を完了するためにメッセージサービスプロバイダに中継される必要のある一連の命令にメッセージの更新を更に変換してもよい。この更なる変換は、使用されている特定のメッセージサービスプロバイダに対してカスタマイズされるのが好ましい。メッセージサービスプロバイダが電子メールサービスプロバイダである場合、ＩＭＡＰ命令が選択又は生成されてもよい。例えば電子メールメッセージをフォルダに移動するために、命令は、メッセージを移動する効果を達成するコピー、格納及び削除ＩＭＡＰコマンドを含んでもよい。複数のメッセージプロバイダが使用される場合、ブロックＳ２６０は、適切なメッセージサービスモジュールを選択することを更に含んでもよい。
【００３３】
変換されたメッセージの更新をメッセージサービスプロバイダへ送信することを含むブロックＳ２７０は、メッセージの更新をメッセージサービスプロバイダと同期するように機能する。メッセージサービス層は、変換されたメッセージの更新を送信するのが好ましい。メッセージサービスプロバイダに接続するためにＩＭＡＰ接続が使用されるのが好ましいが、あらゆる適切な接続が代わりに使用されてもよい。メッセージの更新は、発信元のクライアントアプリケーションにおいて構成されたアカウントの代わりに作成されるのが好ましい。単一のＩＭＡＰ接続が維持されるのが好ましい。同一アカウントを有する異なるクライアントアプリケーションインスタンスから発信されたメッセージの更新はＩＭＡＰ接続を共有できる。いくつかの例において、これによりＩＭＡＰ接続の制限の実施を回避できる。
【００３４】
図７に示すように、好適な一実施形態のクライアントアプリケーションとメッセージサービスプロバイダとの間でメッセージを同期する方法Ｓ３００は、メッセージサービスプロバイダからメッセージの更新を受信すること（Ｓ３１０）と、メッセージの更新をクライアントアプリケーションにおけるネイティブなレンダリングに適合するメッセージスレッドフォーマットに変換すること（Ｓ３２０）と、メールボックスサービスキューを介してメールボックスサービス層へ変換されたメッセージの更新を送信すること（Ｓ３３０）と、メッセージの更新をクライアントアプリケーションに通信できるまでメッセージの更新をキャッシュすること（Ｓ３４０）と、アウトバウンドキューを介して接続サービスへメッセージの更新を送信すること（Ｓ３５０）と、少なくとも１つのクライアントアプリケーションにメッセージの更新を通信すること（Ｓ３６０）とを含むことができる。方法Ｓ３００は、Ｓ２００と異なるメッセージ同期の例であり、すなわち、メッセージサービスプロバイダから発信されたメッセージの更新がシステムに接続された少なくとも１つのクライアントアプリケーションに配信される。方法Ｓ３００は、方法Ｓ２００と多くの共通点を共有できる。例えば、送信が逆方向である点を除いて、ブロックＳ３３０及びＳ３５０はそれぞれブロックＳ２５０及びＳ２３０とほぼ同様である。上述のように、方法Ｓ２００及びＳ３００は、方法Ｓ１００の全体的な動作と同時に行われるのが好ましい。
【００３５】
メッセージサービスプロバイダからメッセージの更新を受信することを含むブロックＳ３１０は、メッセージングアカウントの状態をシステムに転送するように機能する。メッセージサービスプロバイダからのメッセージの更新は、メッセージサービスプロバイダにおけるあらゆる変更を含むことができる。これらの変更は、他のエンティティにより送出された新規の受信メッセージ又は外部のクライアント装置においてメッセージアカウントのユーザにより行われた変更に基づいてもよい。例えばユーザが外部のメッセージサービスプロバイダのウェブインタフェース上で新規フォルダに電子メールを移動した場合、当該変更をクライアントアプリケーションに通信できる。クライアントアプリケーションは、メッセージの状態の最終的な供給元として扱うことのできるメッセージサービスプロバイダと最終的に一致する状態に維持されるのが好ましい。そのようなメッセージの更新は、クライアントアプリケーションがコンテンツの部分にアクセスすることを要求した後にオンデマンドで開始されてもよい。このように、メッセージの状態の情報は、情報が必要な場合にクライアントアプリケーションに単に配信される。
【００３６】
メッセージの更新をクライアントアプリケーションにおけるネイティブなレンダリングに適合するメッセージスレッドフォーマットに変換することを含むブロックＳ３２０は、メッセージの更新をメッセージの更新の内部表現に変換するように機能する。メッセージサービス層は、メッセージの変換を判定するモジュール又は少なくとも１つのルールセットを含むのが好ましい。メッセージの更新を変換することは、メッセージサービスプロバイダからの通信をクライアントアプリケーションがネイティブに解釈できるフォーマットに正規化するのが好ましい。受信されるメッセージの更新は、割り当てられた改訂識別子を更に有してもよい。改訂識別子は、受信メッセージのタイムスタンプ又は命令が受信された時間に基づくのが好ましい。１つの例において、メッセージの更新は添付データを有する新規メッセージであってもよい。１つの変形例において、メッセージの更新をメッセージスレッドフォーマットに変換することは、ファイル添付データをインライン添付データに変更することを含んでもよい。添付ファイルは、アップロードされて添付データサービス上でホストされるのが好ましく、添付データのインライン参照がメッセージに挿入又は追加される。
【００３７】
メッセージの更新をクライアントアプリケーションに通信できるまでメッセージの更新をキャッシュすることを含むブロックＳ３４０は、クライアントアプリケーションがメッセージの更新を受信する用意ができるまでメッセージの更新を保持するように機能する。１つの変形例において、クライアントアプリケーションは接続サービスへの有効な接続を有しても有さなくてもよい。例えばユーザはアプリケーションを開かなくてもよく、あるいは、アプリケーションはスリープモードであってもよい。クライアントアプリケーションがメッセージの更新を受信する用意ができると、接続が確立され、キャッシュされたメッセージの更新を配信できる。１つの例において、メッセージの更新を配信するために使用されるリソースが空いていない場合があり、メールボックスサービス層は、コンテンツを配信する用意ができるまでメッセージの更新を保持する。メッセージの更新は、メールボックスサービス層において一時的にキャッシュ可能である。これは、メッセージの更新がメッセージサービスキューから取り出されてメールボックスサービス層で受信された際に行われるが好ましい。１つの変形例において、メールボックスサービス層又はメッセージサービス層は、アカウントのメッセージのモデルをキャッシュし、関連する部分のみをクライアントアプリケーションに配信できる。これにより、メッセージサービスプロバイダから負荷コンテンツをプルする必要がある場合の遅延が減少する。例えば殆どアクセスされないフォルダに含まれるメッセージは、バックエンドインフラストラクチャにおいて維持されてもよい。ユーザがクライアントアプリケーション上でフォルダにアクセスする場合、メッセージサービスプロバイダにフォルダのコンテンツを要求する必要なく、フォルダにコンテンツをポピュレートできる。同様の方法で、メッセージは、関連するメッセージのみがクライアントアプリケーションへ送信されるようにウィンドウ化／ページ化されるのが好ましい。例えばアカウントは１００個以上の新規メッセージを有してもよいが、全てのメッセージをクライアントアプリケーションに転送する代わりに、最初の５０個のメッセージが送信される。ユーザが更なるメッセージをスクロールするか又は要求した場合に、５０個のメッセージのウィンドウ／バッチを動的に送信できる。
【００３８】
ブロックＳ３６０は、少なくとも１つのクライアントアプリケーションにメッセージの更新を通信することを含む。接続は、ｎｏｄｅ．ｊｓ及び圧縮されたウェブソケット等を使用するリアルタイム通信プロトコルを使用するのが好ましい。接続サービスは、クライアントアプリケーションへの高速配信を可能にするために、サイズ選択データ圧縮を実現するのが好ましい。１つの変形例として、接続サービスは、クライアントアプリケーション上の異なるアカウントインスタンス（すなわち、複数の装置上で使用されている同一アカウント）への複数の接続を含んでもよい。メッセージの更新を通信することは、複数のクライアントアプリケーションインスタンスへメッセージの更新を多重送信することを含むことができる。
【００３９】
更に、方法Ｓ３００及び同様に方法Ｓ２００は、競合を解消することを含むことができる。上述のように、メッセージの更新に改訂識別子を割り当てることができる。改訂識別子は、競合条件を判定するために使用可能である。更に、異なる層（例えば、メールボックスサービス層又はメッセージサービス層）又は異なる供給元（例えば、クライアントアプリケーションにより開始されたか又はメッセージサービスプロバイダにより開始さたか）は異なる権限の重み又はレベルを有することができ、それにより、改訂識別子のみを使用して競合を解消できない場合、優先順位が最も高い供給元の状態が現在の状態として扱われる。図８に示すように、クライアントアプリケーションによるメッセージの更新がメッセージサービスプロバイダによるメッセージの更新と競合する場合にメッセージの競合が発生することがある。競合解消エンジンは、競合している動作を識別して応答するのが好ましい。競合は、２つのメッセージの更新が競合する場合に検出されるか、あるいは、メッセージサービスプロバイダ又はクライアントアプリケーションのいずれかと交信している場合に発生する。
【００４０】
別の一実施形態は、コンピュータ可読命令を格納したコンピュータ可読媒体において上記の方法を実現するのが好ましい。命令は、メッセージ配信システムと組み合わされるのが好ましいコンピュータ実行可能構成要素により実行されるのが好ましい。コンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、フラッシュメモリ、ＥＥＰＲＯＭ、光学装置（ＣＤ又はＤＶＤ）、ハードドライブ、フロッピドライブ又は何らかの適切な装置等の何らかの適切な非一時的なコンピュータ可読記憶媒体に格納されてもよい。コンピュータ実行可能構成要素はプロセッサであるのが好ましいが、その代わりに又はそれに加えて、命令は何らかの適切な専用ハードウェア装置により実行されてもよい。
【００４１】
上記の詳細な説明、並びに図面及び特許請求の範囲から当業者には明らかなように、以下の特許請求の範囲において定義される本発明の範囲から逸脱することなく、本発明の好適な実施形態に対して変形及び変更を行うことができる。
【図１】
2016502806.tif 000003
【図２】
2016502806.tif 000004
【図３】
2016502806.tif 000005
【図４】
2016502806.tif 000006
【図５】
2016502806.tif 000007
【図６】
2016502806.tif 000008
【図７】
2016502806.tif 000009
【図８】
2016502806.tif 000010
【手続補正書】
【提出日】平成27年7月14日(2015.7.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
システムであって、
複数のクライアントメッセージングアプリケーションインスタンスと通信を行う接続サービスと、
前記複数のクライアントメッセージングアプリケーションインスタンスの１つ以上から入ってくるメッセージの更新、及び、前記複数のクライアントメッセージングアプリケーションインスタンスの１つ以上へ向かうメッセージの更新を、一時的に格納して処理するメールボックスサービス層と、
１つ以上の外部のメッセージサービスプロバイダと通信を行うメッセージサービス層と、
前記接続サービスと前記メールボックスサービス層との間を通信可能に連結する第１の中間転送層であって、前記複数のクライアントメッセージングアプリケーションインスタンスから前記メールボックスサービス層へのメッセージの更新を転送する第１のインバウンドメッセージデータキューと、前記メールボックスサービス層から前記複数のクライアントメッセージングアプリケーションインスタンスの１つ以上への通信のための前記接続サービスへのメッセージの更新を転送する第１のアウトバウンドメッセージデータキューとを含む、前記第１の中間転送層と、
前記メールボックスサービス層と前記メッセージサービス層との間を通信可能に連結する第２の中間転送層であって、前記メッセージサービス層から前記メールボックスサービス層へのメッセージの更新を転送する第２のインバウンドメッセージデータキューと、前記メールボックスサービス層から前記メッセージサービス層へのメッセージの更新を転送する第２のアウトバウンドメッセージデータキューとを含む、第２の中間転送層と
を備えることを特徴とするシステム。
【請求項２】
前記メッセージサービス層は、少なくとも１つの電子メールメッセージサービスプロバイダを含む１つ以上の外部のメッセージサービスプロバイダと通信を行うことを特徴とする請求項１に記載のシステム。
【請求項３】
前記メッセージサービス層は、前記外部の電子メールメッセージサービスプロバイダでメンテナンスされるアカウントへのＩＭＡＰ接続をメンテナンスし、
前記複数のクライアントメッセージングアプリケーションインスタンスは、前記アカウントとやり取りする少なくとも２つのクライアントメッセージングアプリケーションインスタンスを含むことを特徴とする請求項２に記載のシステム。
【請求項４】
前記メールボックスサービス層と前記メッセージサービス層との１つ又は両方の中の２つ以上のメッセージの更新間での競合を解決する競合解決モジュールをさらに備えることを特徴とする請求項２又は３に記載のシステム。
【請求項５】
前記メッセージサービス層は、電子メールメッセージをネイティブクライアントフォーマットへ変換するメッセージプロセッサを備えることを特徴とする請求項２乃至４の何れか１項に記載のシステム。
【請求項６】
電子メール添付物に対応するリソースを格納する添付サーバをさらに備え、
前記メッセージプロセッサは、電子メールメッセージの電子メール添付物を、前記添付サーバによって格納されるリソースの参照に変換することを特徴とする請求項５に記載のシステム。
【請求項７】
前記メッセージサービス層は、複数のサービスプロバイダモジュールを含み、
前記複数のサービスプロバイダモジュールのそれぞれは、異なる複数の外部のメッセージサービスプロバイダの１つとやり取りすることを特徴とする請求項１乃至６の何れか１項に記載のシステム。
【請求項８】
前記メールボックスサービス層は、メッセージの更新をメッセージに条件付きで適用する保留データエンジンを含むことを特徴とする請求項１乃至７の何れか１項に記載のシステム。
【請求項９】
前記接続サービスは、リアルタイムプロトコル接続を用いて複数のクライアントメッセージングアプリケーションインスタンスと通信を行うことを特徴とする請求項１乃至８の何れか１項に記載のシステム。
【請求項１０】
前記リアルタイムプロトコル接続は、圧縮ウェブソケット接続を含むことを特徴とする請求項９に記載のシステム。
【請求項１１】
メッセージサービス層において、メッセージサービスプロバイダから、アカウントに関連付けられたメッセージの更新を受信する工程と、
前記メッセージサービス層において、クライアントアプリケーションインスタンスによるネイティブレンダリングと互換性のあるメッセージフォーマットに前記メッセージの更新を変換する工程と、
メッセージサービスキューを通じてメールボックスサービス層へ前記変換されたメッセージの更新を送信する工程と、
前記メールボックスサービス層において、前記アカウントと関連付けられたクライアントアプリケーションインスタンスに、通信における前記メッセージの更新をキャッシュする工程と、
アウトバウンドキューを通じて接続サービスへ前記メッセージの更新を送信する工程と、
前記接続サービスから、前記アカウントに関連付けられた前記クライアントアプリケーションインスタンスへ前記メッセージの更新を通知する工程と
を含むことを特徴とする方法。
【請求項１２】
前記メッセージサービスプロバイダから受信される前記メッセージの更新と、前記アカウントに関連付けられた前記クライアントアプリケーションインスタンスから発行される他のメッセージの更新との間のメッセージ状態の整合性の競合を解決する工程をさらに含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記メッセージ状態の整合性の競合を解決する工程は、
前記メッセージの更新のそれぞれにリビジョンの識別子を割り当てる工程と、
前記リビジョンの識別子に基づき、前記メッセージ状態の整合性の競合を解決する工程と
を含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
クライアントアプリケーションインスタンスによるネイティブレンダリングと互換性のあるメッセージフォーマットに前記メッセージの更新を変換する前記工程は、
メッセージ添付物をファイルに変換する工程と、
添付サービスへ前記ファイルをアップロードする工程と、
前記添付サービス上で前記ファイルの位置への参照を、前記変換されたメッセージの更新に含める工程と
を含むことを特徴とする請求項１１乃至１３の何れか１項に記載の方法。
【請求項１５】
前記クライアントアプリケーションインスタンスへ前記メッセージの更新を通知する前記工程は、
前記クライアントアプリケーションインスタンスへのウィンドウ表示のメッセージの更新のセットの一部として、前記メッセージの更新を通知する工程を含むことを特徴とする請求項１１乃至１４の何れか１項に記載の方法。
【請求項１６】
システムであって、
複数のクライアントメッセージングアプリケーションインスタンスと通信を行う接続手段と、
前記複数のクライアントメッセージングアプリケーションインスタンスの１つ以上から入ってくるメッセージの更新と、前記複数のクライアントメッセージングアプリケーションインスタンスの１つ以上へ向かうメッセージの更新を一時的に格納して処理するメールボックスサービス手段と、
１つ以上の外部のメッセージサービスプロバイダと通信を行うメッセージサービス手段と、
前記接続手段から前記メールボックスサービス手段へのメッセージの更新と、前記メールボックスサービス手段から前記接続手段へのメッセージの更新とをキューに入れて、転送する第１の転送手段と、
前記メールボックスサービス手段から前記メッセージサービス手段へのメッセージの更新と、前記メッセージサービス手段から前記メールボックスサービス手段へのメッセージの更新とをキューに入れて、転送する第２の転送手段と
を備えることを特徴とするシステム。
【請求項１７】
前記接続手段から前記メールボックスサービス手段へのメッセージの更新を転送するインバウンドキューイング手段と、
前記メールボックスサービス手段から、前記複数のクライアントメッセージングアプリケーションインスタンスの１つ以上へ通信を行うための前記接続手段へメッセージの更新を転送するアウトバウンドキューイング手段と
を備えることを特徴とする請求項１６に記載のシステム。
【請求項１８】
前記第２の転送手段は、
前記メッセージサービス手段から前記メールボックスサービス手段へメッセージの更新を転送するインバウンドキューイング手段と、
前記メールボックスサービス手段から前記メッセージサービス手段へメッセージの更新を転送するアウトバウンドキューイング手段と
を備えることを特徴とする請求項１６又は１７に記載のシステム。
【請求項１９】
前記メッセージサービスプロバイダから受信される第１のメッセージの更新と、前記クライアントメッセージングアプリケーションインスタンスから発行される第２のメッセージの更新との間でのメッセージ状態の整合性の競合を競合解決手段をさらに備えることを特徴とする請求項１６乃至１８の何れか１項に記載のシステム。
【請求項２０】
前記メッセージサービスプロバイダと互換性のあるメッセージフォーマットから、クライアントアプリケーションインスタンスによるネイティブレンダリングと互換性のあるメッセージフォーマットへ、メッセージの更新を変換する変換手段をさらに備えることを特徴とする請求項１６乃至１９の何れか１項に記載のシステム。
【国際調査報告】
2016502806.tif 000011
2016502806.tif 000012