(57)【特許請求の範囲】
【請求項１】
指示を備えたメモリと、前記メモリに結合されたプロセッサと、を備えたシステムであって、
前記プロセッサは、前記指示を実行すると、
サーバにアクセスするリクエストをウェブクライアントから受信することと、
前記サーバとの永続的接続を確立することと、
前記リクエストに基づいて、ｅメールデータを前記サーバに要求することと、
前記ｅメールデータを前記サーバから受信することと、
前記ｅメールデータを前記ウェブクライアントに送信することと、
前記ウェブクライアントに関連付けられた通知を前記サーバから受信することと、
前記通知を記憶させることと、
前記ウェブクライアントから受信された後続の通信に応じて前記通知を前記ウェブクライアントに送信することと、
を含む処理を実行する、
システム。
【請求項２】
前記処理が、前記ウェブクライアントについての識別情報を生成することをさらに含む、
請求項１に記載のシステム。
【請求項３】
前記通知を記憶させることが、前記通知および前記識別情報をデータベースレコードに記憶することを含む、
請求項２に記載のシステム。
【請求項４】
前記通知を記憶させることが、前記通知を記憶装置に記憶し、前記通知および前記識別情報についての記憶装置位置情報をデータベースレコードに記憶することを含む、
請求項２に記載のシステム。
【請求項５】
前記処理が、前記通知を前記ウェブクライアントに送信した後に前記通知を削除することをさらに含む、
請求項１から４のいずれかに記載のシステム。
【請求項６】
前記サーバとの永続的接続を確立することが、前記サーバとの永続的接続を確立するように通知サーバを指示することを含む、
請求項１から５のいずれかに記載のシステム。
【請求項７】
コンピュータによって実施される方法であって、前記方法は、
ハイパーテキスト転送プロトコル（ＨＴＴＰ）サーバにて、サーバにアクセスするリクエストをウェブクライアントから受信するステップと、
前記リクエストに基づいて、ｅメールデータを前記サーバに要求するステップと、
前記ｅメールデータを前記サーバから受信するステップと、
前記ｅメールデータを前記ウェブクライアントに送信するステップと、
前記ＨＴＴＰサーバがデータベースを照会することによって、前記ウェブクライアントに関連付けられた通知が第２のＨＴＴＰサーバによって記憶されたことを判定するステップと、
前記ＨＴＴＰサーバによって前記通知を取得するステップと、
前記通知を前記ウェブクライアントに送信するステップと、
を含むコンピュータによって実施される方法。
【請求項８】
前記通知についての記憶装置位置情報を前記ウェブクライアントについての識別情報に基づいて特定するステップをさらに含む、
請求項７に記載のコンピュータによって実施される方法。
【請求項９】
前記サーバにアクセスする前記リクエストが前記識別情報を備える、
請求項８に記載のコンピュータによって実施される方法。
【請求項１０】
前記通知を前記ウェブクライアントに送信した後に前記通知を削除するステップをさらに含む、
請求項７から９のいずれかに記載のコンピュータによって実施される方法。
【請求項１１】
前記通知を取得するステップが、記憶装置、データベースおよび通知サーバの少なくとも１つから前記通知を取得するステップを含む、
請求項７から１０のいずれかに記載のコンピュータによって実施される方法。
【請求項１２】
前記サーバへのアクセスを前記ウェブクライアントに与えるステップをさらに含む、
請求項７から１１のいずれかに記載のコンピュータによって実施される方法。
【請求項１３】
コンピュータ実行可能指示を備えた非一時的コンピュータ可読記憶媒体であって、前記コンピュータ実行可能指示は、プロセッサによって実行されると、プロセッサに、
サーバにアクセスするリクエストをウェブクライアントから受信することと、
前記サーバとの永続的接続を確立することと、
前記リクエストに基づいて、ｅメールデータを前記サーバに要求することと、
前記ｅメールデータを前記サーバから受信することと、
前記ｅメールデータを前記ウェブクライアントに送信することと、
前記ウェブクライアントに関連付けられた通知を前記サーバから受信することと、
前記通知を記憶させることと、
前記ウェブクライアントから受信された後続の通信に応じて前記通知を前記ウェブクライアントに送信することと、
を含む処理を実行させる、
非一時的コンピュータ可読記憶媒体。
【請求項１４】
前記処理が、前記ウェブクライアントについての識別情報を生成することをさらに含む、
請求項１３に記載の非一時的コンピュータ可読記憶媒体。
【請求項１５】
前記通知を記憶させることが、前記通知および前記識別情報をデータベースレコードに記憶することを含む、
請求項１４に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２０１３年９月１７日出願のＵ．Ｓ．Ｐａｔｅｎｔ  Ａｐｐｌｉｃａｔｉｏｎ  Ｎｏ．１４／０２９,１１３および２０１３年９月２４日出願の一部継続出願Ｕ．Ｓ．Ｐａｔｅｎｔ  Ａｐｐｌｉｃａｔｉｏｎ  Ｎｏ．１４／０３５,３５５の利益を主張し、その開示はその全体において参照としてここに取り込まれる。
【背景技術】
【０００２】
ｅメールサービスプロバイダによって提供されるサービスなど、インターネットを介して提供される多くのサービスは、ユーザがウェブブラウザを用いてメールサーバなどのサーバと相互作用することを可能とするウェブインターフェイス（ウェブクライアント）を提供する。メールサーバへのユーザ接続性は、ユーザのウェブページリクエストに応じてデータを取得する１以上のウェブサーバ（通常は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）サーバ）によって促進される。メールサーバおよびウェブサーバは、通常は、データセンタ、またはユーザから離れた他の何らかの施設に位置する。そのようなシステムには通常、主サーバの故障時にサービスを提供する冗長サーバ、および１以上の通信リンクの故障時にインターネットに接続されてサービスを提供する冗長通信リンクによって冗長性が取り入れられる。
【０００３】
ウェブクライアントは、ＨＴＴＰサーバ、またはウェブクライアントがＨＴＴＰサーバを介して相互作用する他のサーバへの永続的な接続（例えば、伝送制御プロトコル（ＴＣＰ）接続）を維持しない。このため、サーバは通知をトリガするイベントに応じて通知を送信し、そのような通知を記憶せず、またはそのような通知を送信する前にウェブクライアントとの接続を確認しないため、そのようなサーバから送信された通知（例えば、新たなｅメールの通知）はウェブクライアントによっては受信されないことがある。サーバは、一度送信してしまうと通知を保持しないため、過去に送信された通知をウェブクライアントが後に要求することはできない。したがって、ウェブクライアントのユーザは、ユーザにイベントの発生を警告することを意図した通知を受信することはない。
【０００４】
ユーザがウェブクライアントを用いてｅメールメッセージなどのメッセージを作成する場合、そのメッセージに関連するデータがウェブクライアント内部にローカルに保存される。そのようなデータは受信者アドレスおよび文章コンテンツを含み得る。ユーザがメッセージを送信し、またはメッセージの下書きを保存することを選択する場合、このデータは、保存および／または処理のためにｅメールサーバに送信される。システムによっては、そのようなメッセージコンテンツは自動的に周期的に保存される。ユーザは、メッセージ作成中にメッセージにデータファイル（例えば、画像、音声ファイル、映像ファイルなど）を添付することもあるが、そのようなファイルはメッセージ作成中にウェブクライアントに保存されず、ユーザがメッセージを送信し、またはメッセージの下書きを手動的に保存するまでｅメールサーバには送信されない。メッセージ作成中にウェブクライアントにサービスを行うＨＴＴＰサーバへの接続が故障すると、添付データは失われる可能性がある。
【０００５】
図面を通じて、参照される要素間の対応を示すように参照番号は再度使用される。図面は、ここに記載される例示的な実施形態を示すために与えられ、開示の範囲を限定するものではない。
【図面の簡単な説明】
【０００６】
【図１】本発明の実施形態が実施される例示的環境を示す。
【図２】本発明の実施形態が実施される他の例示的環境を示す。
【図３】実施形態によるＨＴＴＰサーバについての例示の動作手順を示す。
【図４】実施形態によるＨＴＴＰサーバについての例示の動作手順を示す。
【図５】実施形態によるＨＴＴＰサーバについての例示の動作手順を示す。
【図６】実施形態によるＨＴＴＰサーバについての例示の動作手順を示す。
【図７】実施形態による例示的信号フローを示す。
【図８】本明細書に記載される実施形態が実施可能な好適なコンピューティング環境の実施例を示す。
【図９】コンピューティングサービスプラットフォームを実施するデータセンタの一構成を説明するコンピューティングシステム図を示す。
【図１０】上述したソフトウェアを実行することができるコンピュータの例示的コンピュータアーキテクチャを示す。
【発明を実施するための形態】
【０００７】
ｅメールシステム並びに多くのソーシャルメッセージングウェブサイトおよび他のインタラクティブなウェブサイトによって、添付物を含む他のメッセージを相互に送信する能力をユーザに与えるメッセージング機能を含むユーザインタラクションが可能となる。本開示の種々の実施形態によるシステムおよび方法は、メッセージの作成中にサーバ（例えば、ＨＴＴＰサーバ）への接続が失われた場合に添付物などのメッセージコンテンツを自動的に保存する能力を与える。例えば、ユーザは、ＨＴＴＰサーバを介して遠隔サーバ（例えば、メールサーバ）と通信するように構成されたウェブクライアントを用いてｅメールまたはメッセージを作成することができる。多くのメッセージコンテンツがメッセージ作成中にウェブクライアントによって保存され得るが、メッセージは、ウェブクライアントに保存されることができない１以上の添付物を含み得る。ＨＴＴＰサーバが故障し、あるいはアクセス不能となった場合、メッセージは配信用サーバでは未だ保存されておらず、または配信用サーバに送信されていないので、添付コンテンツは失われることになる。一実施形態では、ウェブクライアントが当初通信していたＨＴＴＰサーバが、メッセージが作成されている間に添付コンテンツを受信し、その添付コンテンツを記憶システムに複製することができる。ある実施形態では、ウェブクライアントに関する状態情報も保存されるであろう。ＨＴＴＰサーバはまた、添付物および／またはメッセージに関連するメタデータをデータベースに記憶させることもできる。当初のＨＴＴＰサーバへの接続が故障すると、ウェブクライアントは、データベースに記憶されたｅメールに関連付けられたメタデータを用いて記憶されたメッセージ添付物を取得するバックアップＨＴＴＰサーバと通信することができる。このように、ＨＴＴＰサーバへの接続が失われた場合にユーザの添付物データは作成中に失われず、メッセージが作成されている間にそのような添付データを保存するメールまたはメッセージサーバでの記憶スペースも消費されない。
【０００８】
本開示の種々の実施形態によるシステムおよび方法はまた、ウェブクライアントのユーザに対して向けられた通知を待ち行列化する能力を与える。ウェブクライアントはｅメールサーバ若しくは同様のシステムまたはＨＴＴＰサーバへの永続的な接続を維持しないため、ウェブクライアントに向けられた通知は、それがサービスまたはアクティビティについてのウェブクライアントからのリクエストに応じて提供されない場合には、ウェブクライアントによって失われる。一実施形態では、ウェブクライアントとｅメールサーバまたは他の同様のシステムとの間の通信を促進するＨＴＴＰサーバは、サーバまたはシステムとの永続的な接続を保持し、ウェブクライアントに向けられた通知を、それらがサーバまたはシステムによって送信されるにつれて記憶することができる。代替的に、そのような通知は、ＨＴＴＰサーバにアクセス可能な通知サーバによって受信および記憶されることができる。そして、これらの通知は、ＨＴＴＰサーバがウェブクライアントからＨＴＴＰリクエストを受信した場合に、ＨＴＴＰサーバによってウェブクライアントに送信される。通知がサーバに記憶されると、ＨＴＴＰサーバは、ＨＴＴＰサーバがウェブクライアントからＨＴＴＰリクエストを受信した場合に、通知を照会し、あるいは取得することができる。これらの実施形態は、ウェブクライアントおよび／またはウェブクライアントとともにあるサーバ若しくはシステムによって使用される接続タイプを警告することなくウェブクライアントが通知を受信することを確実にする態様を与える。
【０００９】
ここに記載される多数の実施例をｅメールシステムおよびｅメールサーバに関して説明するが、当業者であれば、開示される実施形態は、１以上の添付ファイルを含み得る任意のタイプのメッセージまたは通信の構成中に接続の欠如が発生し得るあらゆるシステムに直ちに適用可能であることを理解するはずである。開示の実施形態はまた、任意のタイプの通知をウェブクライアントに提供するあらゆるシステムに直ちに適用可能である。これらの全ての適用例は、本開示の範囲内にある実施形態としてみなされる。
【００１０】
図１は、本開示の実施形態が実施され得る非限定的な例示のシステム１００を示す。ユーザは、任意のタイプのコンピュータ、コンピューティング装置、モバイル装置、スマートフォン、またはウェブクライアントを操作することができる他の任意の装置となるユーザ装置１０１を操作しているものとする。ウェブクライアント１１０は、例えば、ウェブブラウザにおいてユーザ装置１０１上で実行されている。ウェブクライアント１１０は、ｅメールサービスプロバイダによってホスティングされ、あるいは提供されるｅメールシステムへのインターフェイスを提供するｅメールウェブクライアントであればよい。ユーザ装置１０１は、概略として他の装置と、具体的にはインターネット１２０を用いて通信リンク１１２を介して１以上のｅメールサービスプロバイダ装置と通信することができる。通信リンク１１２は、装置間の通信を可能とする任意のプロトコルまたは他の手段を用いて、２以上の装置間の通信を促進することができる任意のタイプおよび数の通信リンクであればよく、有線通信リンク、無線通信リンクおよびこれらの組合せを含む。インターネット１２０は、装置間の通信を促進する任意のタイプおよび数のネットワーク並びにその組合せを表す。全てのそのような実施形態は、本開示の範囲内のものとみなされる。
【００１１】
ウェブクライアント１１０は、通信リンク１１２と同様の任意のタイプおよび数の通信リンクである通信リンク１２３を用いてインターネット１２０に接続するＨＴＴＰサーバ１３０と通信しているものとする。ＨＴＴＰサーバ１３０は、任意のタイプおよび数の通信リンクである通信リンク１７３を介してメールサーバ１７０とｅメールデータを交換することができる。
【００１２】
ユーザがウェブクライアント１１０を用いてｅメールを作成している間に、ｅメールデータはウェブクライアント１１０によってユーザ装置１０１にローカルに保存されることができる。しかし、ユーザが作成中のｅメールに添付物を添付する場合、添付物はウェブクライアント１１０に保存できないことが多い。一実施形態では、ユーザがｅメールへの添付のためのファイルを選択する場合、この添付物がＨＴＴＰサーバ１３０に送信される。ＨＴＴＰサーバ１３０は、通信リンク１５３を介して添付物の複製をストレージ１５０に送信することができる。通信リンク１５３は、任意のタイプおよび数の通信リンクであればよい。ストレージ１５０は、任意のタイプおよび数のデータ記憶装置およびシステムであればよく、クラウド記憶システムを含む。
【００１３】
ＨＴＴＰサーバ１３０は、データベース１６０に記憶された添付物およびｅメールに関連付けられたメタデータを、通信リンク１６３を用いて送信または生成する。通信リンク１６３は任意のタイプおよび数の通信リンクであればよい。データベース１６０は、任意のタイプおよび数のデータベースおよびデータベースシステムを表し、クラウドベースのデータベースシステム、同様に任意数およびタイプのメモリ、キャッシュ、ディスクドライブなどを含む。ＨＴＴＰサーバ１３０によって送信および／または生成されたメタデータは、記憶された添付物をウェブクライアント１１０で作成中のｅメールに関連付ける他の装置によって使用され得る何らかの情報を含んでいてもよく、それは、ストレージ１５０のどこに添付物が保存されているかを示す記憶位置情報を含み得る。代替的に、添付物がストレージ１５０に保存されたことの表示がメタデータに含まれてもよい。そのようなメタデータが、添付物についての特定の場所の表示ではなく、添付物が保存されたことの表示を含む場合、記憶された添付物の記憶位置を特定するのに他の識別情報が使用されてもよい。例えば、ウェブクライアント識別子（例えば、セッション識別子）および添付識別子（例えば、ウェブクライアント１１０に関連付けられたレコードとともに保存された添付名）の組合せが、ストレージ１５０における添付物を識別するのに使用されてもよい。このメタデータはまた、ウェブクライアント１１０がｅメールを作成していることを示す情報など、ウェブクライアント１１０に関する状態情報を含んでいてもよい。なお、ＨＴＴＰサーバ１３０は、何らかの情報がｅメール添付物に関して記憶されているか否かにかかわらず、状態情報を記憶し、ウェブクライアント１１０に関連付けられた状態情報を周期的に、またはウェブクライアント１１０の状態が変化するのに応じて更新するようにしてもよい。全てのそのような実施形態は、本開示の範囲内のものとみなされる。
【００１４】
ＨＴＴＰサーバ１４０は、ＨＴＴＰサーバ１３０に対するバックアップＨＴＴＰサーバとして作用することによってユーザに冗長性を与えることができる。ＨＴＴＰサーバ１４０は、通信リンク１２４を用いて他の装置に接続し、通信リンク１５４、１６４および１７４を介してそれぞれストレージ１５０、データベース１６０およびメールサーバ１７０と通信することができる。通信リンク１２４、１５４、１６４および１７４の各々は、任意のタイプおよび数の通信リンクであればよい。なお、図１においてはウェブクライアント１１０および他の装置が通信リンク１２４、１５４、１６４および１７４ではなく他のリンクを用いて通信していることを明確にするために、通信リンク１２４、１５４、１６４および１７４の各々は、図１では薄く示されている。各図において示される通信リンクの種々の太さおよび濃さは、説明する通信リンクの他の何らかの特徴、構成または構成要件の表示として理解されるべきではない。
【００１５】
一実施形態では、ＨＴＴＰサーバ１３０は、通信リンク１７４を介してメールサーバ１７０と永続的接続（例えば、ＴＣＰ接続）を確立することができる。そのような永続的接続は、ウェブクライアント１１０に関連付けられる通信に専用のものとなり得る。永続的接続は、メールサーバ１７０へのアクセスのためのウェブクライアント１１０からの最初のリクエストを受信すると開始され、所定の制限時間が切れるか、永続的接続の明示的な終了が警告されるまで（例えば、ユーザがウェブクライアント１１０をログオフまたはシャットダウンするまで）維持されることができる。ウェブクライアントの最初のリクエストに応じて、ＨＴＴＰサーバ１３０は、ウェブクライアント１１０の代わりに、ｅメールデータ（例えば、インボックスにあるメールの一覧、新たなｅメールなど）をメールサーバ１７０から要求し、メールサーバ１７０から受信するとそのようなデータをウェブクライアント１１０に提供することができる。
【００１６】
ＨＴＴＰサーバ１３０はまた、メールサーバ１７０からの、ウェブクライアント１１０およびそれに関連付けられるユーザに対する通知を登録してもよいし、あるいは、そのようなあらゆる通知がメールサーバ１７０によってＨＴＴＰサーバ１３０に提供されることを要求してもよい。通知は、新たに受信されたｅメール、カレンダーによるリマインダ、ミーティングの招待など、ユーザに送信され得るイベントの任意の通知または表示を含む。通知の発行次第、ＨＴＴＰサーバ１３０は、そのような通知をローカルに（例えば、メモリ、ハードディスクに）記憶し、通知を、ウェブクライアント１１０、ウェブクライアント１１０に関連付けられたセッション、および／またはウェブクライアント１１０に関連付けられたユーザに関連付けることができる。ＨＴＴＰサーバ１３０は、後続の通知を、それらがメールサーバ１７０から受信されるのに応じて記憶することができる。ＨＴＴＰサーバ１３０は、１以上の通知の受信の肯定応答をメールサーバ１７０に送信することができる。
【００１７】
ＨＴＴＰサーバ１３０は、ウェブクライアント１１０からメールサーバ１７０によって提供されるデータまたはサービスについての後続のリクエストを受信し得る。このリクエストに応じて、ＨＴＴＰサーバ１３０は、リクエストをメールサーバ１７０に転送し、メールサーバ１７０からのリクエストに対する応答を受信することができる。そして、ＨＴＴＰサーバは、ウェブクライアント１１０に対するいずれかの記憶された通知とメールサーバ１７０からの応答とを組合せ、組み合わされた通信をウェブクライアント１１０に送信することができる。代替的に、ＨＴＴＰサーバ１３０は、キープアライブ通信、またはメールサーバ１７０とのインタラクションを必要としないウェブクライアント１１０からの他の通信を受信してもよい。本実施形態では、ＨＴＴＰサーバ１３０は、ウェブクライアント１１０に対するいずれかの記憶された通知をウェブクライアント１１０に送信することができる。ＨＴＴＰサーバ１３０は、記憶された通知の送信に応じて、そのような通知をローカルストレージから除去することができる。代替的に、ウェブクライアント１１０がＨＴＴＰサーバ１３０への通知の受信の肯定応答を送信し、ＨＴＴＰサーバがこの肯定応答の受信に応じて通知をローカルストレージから削除するようにしてもよい。なお、通知は、個別の通信において個々に送信されてもよいし、各々が２以上の通知を含む１以上の通信において送信されてもよい。個々に送信されたものが何らかの形でグループ化されるか否かにかかわらず、１以上の通知を含む通信は、ウェブクライアント１１０に向けられたｅメールデータを含む他のデータを含むこともできる。そのような全ての実施形態は、本開示の範囲内のものとみなされる。
【００１８】
一実施形態では、ＨＴＴＰサーバ１３０は、通知をローカルに記憶するのではなく、またはこれに加えて、そのような通知をデータベースまたはストレージに記憶させてもよい。例えば、通知または通知の表示が、ウェブクライアント１１０、ウェブクライアント１１０によって使用される通信セッションまたはウェブクライアント１１０のユーザに関連付けられた１以上のレコードにおいてデータベース１６０でＨＴＴＰサーバ１３０によって記憶され得る。１以上の通知がデータベース１６０に記憶されない実施形態では、そのような通知は、ストレージ１５０などのストレージに記憶され得る。そのような実施形態では、ストレージ１５０のどこに通知が保存されているかを示す記憶位置情報が、データベース１６０上のウェブクライアント１１０に関連付けられたレコードに含まれ得る。代替的に、１以上の通知がストレージ１５０に保存されたことの表示がそのレコードに含まれ、記憶された通知の記憶位置を特定するのに他の識別情報が使用されてもよい。例えば、通知識別子は、ウェブクライアント１１０に関連付けられたデータベース１６０におけるレコードに各通知について記憶され、ウェブクライアント識別子（例えば、セッション識別子）と通知識別子の組合せが、ストレージ１５０における通知の位置を突き止めるのに使用されてもよい。そのような全ての実施形態は本開示の範囲内のものとみなされる。通知をデータベース１６０またはストレージ１５０に記憶することによって、ウェブクライアント１１０が何らかの理由でＨＴＴＰサーバ１３０と通信できなくなっている場合に、この情報がＨＴＴＰサーバ１４０または他のＨＴＴＰサーバに対してアクセス可能となる。
【００１９】
ＨＴＴＰサーバが通知をデータベース１６０および／またはストレージ１５０に記憶する場合、ＨＴＴＰサーバ１３０はこれらの通知を、メールサーバ１７０によって提供されるデータ若しくはサービスの要求に応じて、またはキープアライブ通信若しくはここに記載されるウェブクライアント１１０からの他の通信に応じて、ウェブクライアント１１０に送信する。記憶された通知の送信に応じて、ＨＴＴＰサーバ１３０はその通知をデータベース１６０および／またはストレージ１５０から除去することができる。代替的に、ウェブクライアント１１０は通知の受信の肯定応答をＨＴＴＰサーバ１３０に送信し、ＨＴＴＰサーバはこの肯定応答を受信するとデータベース１６０および／またはストレージ１５０から通知を削除するようにしてもよい。
【００２０】
なお、通知の要求、受信および登録、また同様に通知の記憶および取得といった通知の取扱いは、ＨＴＴＰサーバ１３０またはここで検討される他の任意のＨＴＴＰサーバ内で独立した処理によって扱われてもよい。例えば、ＨＴＴＰサーバ１３０で実行される第１の処理がウェブクライアント１１０との通信を扱う一方で、独立した処理が通知を扱ってもよい。通知を扱い、それらをウェブクライアント１１０に提供するために、この２つの処理は任意の態様で相互作用することができる。
【００２１】
一実施形態では、ＨＴＴＰサーバ１３０が通知を保持するのではなく、通知サーバ１８０が通知を扱う。ＨＴＴＰサーバ１３０は、ここで説明するいずれかのタイプの通知リンクであるリンク１８３を介して通知サーバ１８０と通信することができる。ＨＴＴＰサーバ１３０は、それがウェブクライアント１１０にサービス中であることを通知サーバ１８０に通知し、識別情報をウェブクライアント１１０、装置１０１またはそのユーザに提供することができる。通知サーバ１８０は、ここで説明するいずれかのタイプの通信リンクである通信リンク１８７を介してメールサーバ１７０との永続的接続（例えば、ＴＣＰ接続）を確立することができる。そのような永続的接続は、ウェブクライアント１１０に関連付けられた通信に専用のものとなり得る。永続的接続は、メールサーバ１７０へのアクセスのためのウェブクライアント１１０からの最初のリクエストが受信されたことのＨＴＴＰサーバ１３０からの通知を受信したことに応じて、またはそれ応じてＨＴＴＰサーバ１３０によって生成された通信応じて開始される。永続的接続は、所定の制限時間が切れるまで、または永続的接続の明示的終了が保証されるまで（例えば、ユーザがウェブクライアント１１０をログオフまたはシャットダウンしたこと応じて、ＨＴＴＰサーバ１３０が通知サーバ１８０にそれをシャットダウンさせるよう指示するまで）、維持されることができる。
【００２２】
通知サーバ１８０はまた、ウェブクライアント１１０および／またはそれに関連付けられたユーザに対する通知をメールサーバ１７０に登録し、あるいは何らかのそのような通知がメールサーバ１７０によって通知サーバ１８０に提供されることを要求することができる。通知は、新たに受信されたｅメール、カレンダーによるリマインダ、ミーティング招待状などの表示といったユーザに送信され得るイベントの何らかの通知または表示を含む。通知の発行次第、通知サーバ１８０は、そのような通知をローカルに（例えば、メモリ、ハードディスクに）記憶し、通知をウェブクライアント１１０、ウェブクライアント１１０に関連付けられたセッションおよび／またはウェブクライアント１１０に関連付けられたユーザに関連付けることができる。通知サーバ１８０は、後続の通知を、それらがメールサーバ１７０から受信されるに応じて記憶していくことができる。通知サーバ１８０は、１以上の通知の受信の肯定応答をメールサーバ１７０に送信することができる。
【００２３】
ＨＴＴＰサーバ１３０は、メールサーバ１７０によって提供されるデータまたはサービスに対する後続のリクエストをウェブクライアント１１０から受信することができる。このリクエストに応じて、ＨＴＴＰサーバ１３０は、リクエストをメールサーバ１７０に転送し、そのリクエストに対する応答をメールサーバ１７０から受信することができる。ＨＴＴＰサーバ１３０はまた、ウェブクライアント１１０に対する係属中のいずれかの通知を通知サーバ１８０に要求することができる。通知サーバ１８０は、通知またはウェブクライアント１１０に対する係属中の通知がないことを示す応答を以て応答する。ＨＴＴＰサーバ１３０は、通知サーバ１８０から受信されるウェブクライアント１１０に対するいずれかの通知とメールサーバ１７０から受信される応答とを組み合わせ、組み合わせられた通信をウェブクライアント１１０に送信する。代替的に、ＨＴＴＰサーバ１３０は、キープアライブ通信、またはメールサーバ１７０とのインタラクションを必要としないウェブクライアント１１０からの他の通信を受信してもよい。この実施形態では、ＨＴＴＰサーバ１３０は、ウェブクライアント１１０に対する任意の係属中の通知を通知サーバ１８０に要求して通知サーバ１８０から受信する。ＨＴＴＰサーバ１３０は、ウェブクライアント１１０に対するそのような通知をそれに送信する。通知が準備されると、通知サーバ１８０は、その通知をローカルストレージから除去することができる。代替的に、ウェブクライアント１１０が通知の受信の肯定応答をＨＴＴＰサーバ１３０に送信し、ＨＴＴＰサーバ１３０がこの受信の肯定応答、またはウェブクライアント１１０からの受信の肯定応答を受信したこと応じて生成された他の指示を通知サーバ１８０に送信してもよい。これ応じて、通知サーバ１８０は通知をローカルストレージから削除することができる。なお、通知サーバ１８０は、通知を個別の通信において個々に送受信してもよいし、各々が２以上の通知を含む１以上の通信において送受信してもよい。個々に送信されたものが何らかの形でグループ化されるか否かにかかわらず、１以上の通知は、ウェブクライアント１１０に関連付けられた何らかのデータを含むこともできる。そのような全ての実施形態は、本開示の範囲内のものとみなされる。
【００２４】
ある実施形態では、通知サーバ１８０は、通知をローカルに記憶するのではなく、またはこれに加えて、そのような通知をデータベースまたはストレージに記憶させてもよい。例えば、通知または通知の表示が、ここに開示される任意のタイプまたは数の通信リンクであるリンク１８６を介して、ウェブクライアント１１０、ウェブクライアント１１０によって使用される通信セッションまたはウェブクライアント１１０のユーザに関連付けられた１以上のレコードにおいてデータベース１６０で通知サーバ１８０によって記憶され得る。ある実施形態では、通知は、上記の代わりに、または上記に加えて、ここに開示される任意のタイプまたは数の通信リンクであるリンク１８５を介して、通知サーバ１８０が通信するストレージ１５０などのストレージに記憶される。そのような実施形態では、ストレージ１５０のどこに通知が保存されているかを示す記憶位置情報が、データベース１６０上のウェブクライアント１１０に関連付けられたレコードに含まれ得る。代替的に、１以上の通知がストレージ１５０に保存されたことの表示がそのレコードに含まれてもよく、記憶された通知の記憶位置を特定するのに他の識別情報が使用されてもよい。例えば、通知識別子は、ウェブクライアント１１０に関連付けられたデータベース１６０におけるレコードに各通知について記憶され、ウェブクライアント識別子（例えば、セッション識別子）と通知識別子の組合せが、ストレージ１５０における通知の位置を突き止めるのに使用されてもよい。そのような全ての実施形態は本開示の範囲内のものとみなされる。通知をデータベース１６０またはストレージ１５０に記憶することによって、ウェブクライアント１１０が何らかの理由でＨＴＴＰサーバ１３０と通信できなくなっている場合に、この情報が通知サーバ１８０および／またはサーバ若しくは装置に対して利用可能となる。
【００２５】
通知サーバ１８０が通知をデータベース１６０および／またはストレージ１５０に記憶させる場合、ＨＴＴＰサーバ１３０はこれらの通知を、メールサーバ１７０によって提供されるデータ若しくはサービスの要求に応じて、またはキープアライブ通信若しくはここに記載されるウェブクライアント１１０からの他の通信に応じて、通知サーバ１８０に要求する。記憶された通知を送信すると、通知サーバ１８０はその通知をデータベース１６０および／またはストレージ１５０から除去することができる。代替的に、ウェブクライアント１１０は通知の受信の肯定応答をＨＴＴＰサーバ１３０に送信し、ＨＴＴＰサーバ１３０は、この受信の肯定応答、または受信の肯定応答をウェブクライアント１１０から受信したことに応じて生成された他の指示を通知サーバ１８０に提供するようにしてもよい。これに応じて、通知サーバ１８０は、この肯定応答を受信するとデータベース１６０および／またはストレージ１５０から通知を削除するようにしてもよい。
【００２６】
なお、記憶された通知は、ウェブクライアントに送信されない場合にはいつまでも保持されなくてもよい。ある実施形態では、各通知は、所定時間だけ記憶され、所定時間の満了次第削除されてもよい。代替的に、セッションがウェブクライアント１１０とＨＴＴＰサーバ１３０の間で維持される間のみ通知が記憶されるようにしてもよい。セッションの期限切れ次第、ＨＴＴＰサーバ１３０は、セッションおよび／またはウェブクライアント１１０に関連付けられたいずれかの通知を削除してもよいし、その通知が削除されるべきことを通知サーバ１８０に指示し、あるいは示すようにしてもよい。
【００２７】
図２は、ＨＴＴＰサーバ１３０がウェブクライアント１１０とはもはや通信していない非限定的な例示のシステム１００を示す。これは、通信リンク１２３の故障、ＨＴＴＰサーバ１３０の故障、または他の何らかの理由に起因し得る。ある実施形態では、ＨＴＴＰサーバ１３０は、通信リンク１５３、１６３および１７３の１以上を介した通信の成立の失敗に起因して利用不可となり得る。このような実施形態では、ＨＴＴＰサーバ１３０または他のシステム若しくは装置は、これらのリンクの１以上を介した通信が機能しないと判定し、ＨＴＴＰサーバ１３０自体が機能可能であったとしても、ウェブクライアント１１０に対するＨＴＴＰトラフィックがＨＴＴＰサーバ１４０に迂回されるようにすることができる。ウェブクライアント１１０にサービスを行うのにＨＴＴＰサーバ１３０が利用できなくなると、ウェブクライアント１１０からのトラフィックはＨＴＴＰサーバ１４０に再方向付けされることができる。これは任意の手段および方法を用いて自動的に行われ、ウェブクライアント１１０および／またはそのユーザに対して透明となり得る。
【００２８】
ＨＴＴＰサーバ１４０は、ウェブクライアント１１０が以前にＨＴＴＰサーバ１３０と通信していたことを認識し、あるいは、ここに記載されるものを含む任意の手段または方法を用いて現在ＨＴＴＰサーバ１３０の代わりにクライアントにサービスを行っていると判定する。ウェブクライアント１１０に関連付けられたデータを判定または取得すると、ＨＴＴＰサーバ１４０は、ウェブクライアント１１０に関連付けられたメタデータをデータベース１６０から通信リンク１６４を用いて取得することができる。メタデータは、ウェブクライアント１１０が関連の添付物を有するｅメールの作成過程にあることを示すことができ、ストレージ１５０から添付物を取得するのに使用され得る添付物に対する識別情報を与えることもできる。代替的に、メタデータは、添付物がウェブクライアントに関連付けられていることを示し、添付物の記憶位置が、メタデータに含まれ得る添付物識別子と組み合わされたウェブクライアント識別子などの他の手段を用いて特定されるようにしてもよい。ウェブクライアント１１０を用いて作成されているｅメールに添付物が関連付けられていると判定すると、ＨＴＴＰサーバ１４０は、添付物をストレージ１５０から通信リンク１５４を介して取得することができる。作成中のｅメールを保存または送信するユーザコマンドに応じて、ＨＴＴＰサーバ１４０は、添付物を送信し、実施形態によっては、他のｅメールデータをメールサーバ１７０に通信リンク１７４を介して送信することができる。これは、ウェブクライアント１１０がｅメールを自動的に保存するように構成される場合には、ユーザインタラクションなしに実行されてもよい。
【００２９】
ＨＴＴＰサーバ１４０はまた、または上記の代わりに、ここに記載されるようにデータベース１６０におけるレコードの位置を突き止める識別情報を用いて、通知がデータベース１６０またはストレージ１５０にウェブクライアント１１０に対して記憶されたことを判定するようにしてもよい。通知がストレージ１５０に記憶される場合、ＨＴＴＰサーバ１４０は、記憶された通知が存在すると判定すると、通信リンク１６４を用いてデータベース１６０からその通知についての通知記憶位置情報を取得することができる。この通知記憶位置情報を用いて、ＨＴＴＰサーバ１４０は、ストレージ１５０からのいずれかの記憶された通知を取得し、それらをウェブクライアント１１０に送信することができる。代替的に、通知がデータベース１６０に記憶される場合、ＨＴＴＰサーバ１４０はそのような通知をデータベース１６０から取得し、それらをウェブクライアント１１０に送信することができる。そして、ＨＴＴＰサーバ１４０は、ここに記載するように通知を記憶、送信および削除することに進む。
【００３０】
通知サーバ１８０を利用する実施形態では、ＨＴＴＰサーバ１４０は、通知サーバ１８０を照会して、ウェブクライアントに関連付けられた識別データ（例えば、セッション識別子）などのデータを通知サーバ１８０に提供することによって、通知がウェブクライアント１１０に対して記憶されたことを判定することができる。そして、通知サーバ１８０は、それ自身のデータを参照し、またはデータベース１６０を照会して、通知がウェブクライアント１１０に対して係属中であるかを判定することができる。通知が係属中である場合、通知サーバ１８０は、ここに記載されるウェブクライアント１１０の識別情報を用いてデータベース１６０および／またはストレージ１５０からその通知を取得することができる。通知がストレージ１５０に記憶される場合、通知サーバ１８０は、記憶された通知が存在すると判定すると、通信リンク１８６を用いてデータベース１６０からその通知についての通知記憶位置情報を取得することができる。通知サーバ１８０は、この通知記憶位置情報を用いて、いずれかの記憶された通知をストレージ１５０から取得し、それらをＨＴＴＰサーバ１４０に送信することができ、ＨＴＴＰサーバ１４０はそれらをウェブクライアント１１０に提供することができる。代替的に、通知がデータベース１６０で記憶される場合、通知サーバ１８０はその通知をデータベース１６０から取得し、それらをＨＴＴＰサーバ１４０に送信することができ、ＨＴＴＰサーバ１４０はそれらをウェブクライアント１１０に提供することができる。そして、通知サーバ１８０は、ここに記載されるように通知を記憶、送信および削除することに進む。
【００３１】
なお、図１および図２の装置は独立して個別に記載されるが、これらの装置は物理的に組み合わされていてもよいし、１以上のデータセンタまたは他の地理的位置にわたって物理的に分散された幾つかの装置であってもよい。例えば、データベース１６０およびストレージ１５０は単一の装置であってもよいし、データベース１６０およびストレージ１５０に関連付けられた機能が１以上の装置によって実行されてもよい。また、装置間の接続は、認証、および／または装置間のデータ交換が傍受され難いこと若しくは仮に傍受されても意図しない受信者には解読され難いことを確実にする他の何らかの手段を用いて安全化され得る。そのような全ての実施形態は、本開示の範囲内のものとみなされる。
【００３２】
なお、通知の要求、受信および登録、また同様に通知の記憶および取得といった通知の取扱いは、ＨＴＴＰサーバ１４０またはここで検討される他のいずれかのＨＴＴＰサーバ内で独立した処理によって扱われてもよい。例えば、ＨＴＴＰサーバ１４０で実行される第１の処理がウェブクライアント１１０との通信を扱う一方で、独立した処理が通知を扱ってもよい。通知を扱い、それらをウェブクライアント１１０に提供するために、この２つの処理が任意の態様で相互作用することができる。
【００３３】
図３に、実施形態による、ＨＴＴＰサーバのための例示の処理手順３００を示す。処理手順３００は、処理３１０で始まり、ウェブクライアントがｅメールの作成の補助のためのＨＴＴＰサーバを介したサービスを要求していることの表示を受信する処理３１５に移行する。これは、ｅメール作成インターフェイスを提供するウェブページへのアクセスのリクエストを含む任意の形態をとり得る。処理３２０において、ＨＴＴＰサーバは、データベースにおける現在のウェブクライアント状態情報を記憶する。例えば、ウェブクライアントに関連付けられたメタデータがデータベースに記憶され得る。ウェブクライアントが任意の手段を用いて識別され、ウェブクライアントについてのメタデータを含むデータベースにおけるレコードを識別するのにその識別情報が使用され得る。例えば、セッション識別子が、ウェブクライアント並びに／またはウェブクライアントおよびＨＴＴＰサーバが関与する特定の通信セッションに対する識別子として生成および記憶され得る。このセッション識別子はまた、ある実施形態ではユーザ装置で実行されるウェブブラウザによって記憶された「クッキー」またはデータとして、ウェブクライアントを実行するユーザ装置での記憶のためにウェブクライアントに送信され得る。
【００３４】
処理３２５において、ＨＴＴＰサーバは、ウェブクライアントを用いて現在作成されているｅメールに関連付けられた添付物をウェブクライアントから受信する。この添付物は、処理３３０において、ここで説明する任意のタイプの記憶装置および記憶システムを含む記憶手段に記憶される。なお、ＨＴＴＰサーバは、そのような添付物をローカルに、および記憶装置またはシステムで記憶してもよいし、添付物を記憶装置またはシステムに送信して添付物のローカルな複製を保持しなくてもよい。また、ＨＴＴＰサーバは添付物を修正してもよいし、あるいはそれをメールサーバによって受付け可能かつ理解可能なフォーマットに置換してメールサーバによる添付の後の使用を促進するようにしてもよい。そのような全ての実施形態およびそのあらゆる変形例は、本開示の範囲内のものとみなされる。
【００３５】
処理３３５において、記憶装置または記憶システム内の添付物の位置を示す情報がデータベースに記憶される。この位置情報は、ウェブクライアントに、またはウェブクライアント並びに／若しくはウェブクライアントおよびＨＴＴＰサーバが関与する通信セッションに関連付けられたレコードおいて記憶される。代替的に、添付物の特定の位置の表示ではなく、添付物が保存されたことの表示が、そのレコードに記憶されてもよい。そのような表示は任意の形態をとり、添付物の名前または識別子を含み得る。このような実施形態では、添付物の記憶位置を特定するのに、ウェブクライアント識別子と添付物識別子の組合せなど、他の識別情報が使用されてもよい。処理３３５において、ウェブクライアントにおいて現在作成中のｅメールに関連付けられた添付物があることを反映するように、データベースにおけるウェブクライアントに対する状態情報が更新される。
【００３６】
ウェブクライアントとＨＴＴＰサーバの間の通信に影響する故障が発生していない場合には、処理手順３００は処理３４０に進み、ここではウェブクライアントの状態の何らかの変化が起こったかについての判定が行われる。ウェブクライアントの状態に変化があった場合、処理３４５において、ウェブクライアントの状態が、それに関連付けられたデータベースのレコードおよび／またはＨＴＴＰサーバとのその通信セッションにおいて更新される。処理３５０において、作成中のｅメールをウェブクライアントが送信または保存するリクエストを送信したかについての判定が行われる。送信した場合、ウェブクライアント並びに／またはウェブクライアントおよびＨＴＴＰサーバが関与する通信セッションに関連付けられたレコードにおいて記憶され得る位置情報若しくは添付物表示を用いる実施形態においては、処理３５５において、ＨＴＴＰサーバが記憶装置または記憶システムから添付物を取得する。処理３６０において、ＨＴＴＰサーバは、添付物、および他の何らかのｅメール関連データをメールサーバに送信し、処理は処理３６５で終了する。
【００３７】
ある実施形態では、例えば、ＨＴＴＰサーバが添付物のローカルな複製を保持しない実施形態においては、ＨＴＴＰサーバは、記憶装置またはシステムから添付物を取得することができる。他の実施形態では、ＨＴＴＰサーバは、ローカルに記憶された添付物の複製をメールサーバに送信することができる。そのような全ての実施形態およびそのあらゆる変形例は、本開示の範囲内のものとみなされる。ある実施形態では、ＨＴＴＰサーバは、添付物を、メールサーバによって理解され、受け付けられるフォーマットに変換し、あるいはそのフォーマットとすることができる。処理３６０においても、添付物をメールサーバに送信した後、ＨＴＴＰサーバは、添付物を記憶装置またはシステムから削除し、データベースにおけるウェブクライアントに関連付けられたレコードから添付物位置情報を削除することもできる。代替的に、ＨＴＴＰサーバは、データベースにおけるウェブクライアントに関連付けられたレコードから添付物についての添付物位置情報のみを削除して、後のｅメールまたはメッセージへの添付用など、更なる使用のために添付物を記憶装置または記憶システムに保持してもよい。
【００３８】
他の実施形態では、ＨＴＴＰサーバは、添付物をメールサーバに送信するのではなく、例えば、ＨＴＴＰサーバが添付物をローカルメモリまたはデータベースから取得した後に、添付物位置情報をメールサーバに送信してメールサーバが添付物を記憶システムまたは装置自体から取得できるようにしてもよい。そのような実施形態では、添付物は、それが記憶システムまたは装置に記憶される前に、メールサーバによって理解されて受け付けられるフォーマットに修正され、あるいは変換されていてもよい。そのような実施形態においても、ＨＴＴＰサーバは、（例えば、ｅメールが複数の受信者を有する場合）メールサーバからの添付物を使用し得る１以上のメールの送信が成功したことの通知を受信した後に添付物を記憶装置から削除するとともにデータベースにおけるウェブクライアントに対するレコードを削除し、または添付物に対する添付物位置情報をデータベースにおけるウェブクライアントに関連付けられたレコードから削除することができる。添付物および／または添付物位置情報がメールまたはメッセージングサーバに提供された後、処理３６５において、状態情報がデータベースにおいて更新されて、例えば、ウェブクライアントがもはやメッセージ作成状態にないことを示す。代替的に、処理３６５において、ＨＴＴＰサーバは、データベースにおけるウェブクライアントについてのレコードを削除してもよい。処理３６５の後、処理手順３００は、手順が終了する処理３７０に進む。
【００３９】
ただし、ある実施形態では、添付物を記憶装置またはシステムに記憶させた後に、何らかの理由で、サービスをウェブクライアントに当初提供していたＨＴＴＰサーバが故障し、またはＨＴＴＰサーバとウェブクライアントの間の接続が故障し得る。このような実施形態では、バックアップまたは冗長ＨＴＴＰサーバがウェブクライアントに対するＨＴＴＰサーバ機能をその後引き継ぐことができる。図４に、そのような実施形態によるＨＴＴＰサーバに対する例示の処理手順４００を図示する。処理手順４００は処理４１０で始まり、バックアップＨＴＴＰサーバが、ウェブクライアントがサービスを要求していることの表示を受信する処理４１５に進む。処理４２０において、ＨＴＴＰサーバは、例えば、ウェブクライアントを実行するウェブブラウザからクッキーを取得することによって、ウェブクライアント識別データを取得する。このような識別情報は、ウェブクライアントおよび／またはウェブクライアントとその以前のＨＴＴＰサーバの間で以前に進行していた特定の通信セッションを識別するセッション識別子の形態をとることができる。
【００４０】
処理４２５において、ＨＴＴＰサーバは、識別情報を用いてデータベースからウェブクライアントに関する状態情報および他の情報を取得する。この情報は、ウェブクライアントがｅメール作成状態であったか、および作成中のｅメールが１以上の添付物を含んでいたかを示すデータを含み得る。処理４３０において、ウェブクライアント状態に何らかの変化が起こったかについての判定が行われる。ウェブクライアント状態に変化があった場合、処理４３５において、ウェブクライアントの状態が、それおよび／またはそのＨＴＴＰサーバとの通信セッションに関連付けられたデータベースレコードにおいて更新される。
【００４１】
処理４４０において、作成中のｅメールを送信または保存するリクエストをウェブクライアントが送信したかについての判定が行われる。リクエストを送信した場合、処理４４５において、作成中のｅメールがそれに関連する添付物を有しているかについての判定が行われる。添付物を有していない場合、処理手順４００は、例えば、ウェブクライアントがもはやメッセージ作成状態にないことを反映するように状態情報が更新される処理４６０に進む。ｅメールまたはメッセージ関連データをメールサーバに提供することなど、ｅメールまたはメッセージが送信されるのに必要な他の何らかの処理も行われ得る。関連の添付物がある場合、処理４５０において、ＨＴＴＰサーバは、添付物を記憶装置またはシステムから取得する。他の実施形態では、ＨＴＴＰサーバが添付物をストレージに記憶させるが添付物のローカルな複製を保持しない場合には、ＨＴＴＰサーバは、ローカルストレージのために添付物の複製を取得しなくてもよい。処理４５５において、ＨＴＴＰサーバは、添付物と他の任意のｅメール関連データとをｅメールの構成および配信のためにメールサーバに送信する。
【００４２】
当初のＨＴＴＰサーバについて示したように、例えば、ＨＴＴＰサーバが添付物のローカルな複製を保持しない実施形態では、バックアップＨＴＴＰサーバは、添付物を記憶装置またはシステムから取得することができる。他の実施形態では、ＨＴＴＰサーバは、ローカルに記憶された添付物の複製をメールサーバに送信することができる。そのような全ての実施形態およびそのあらゆる変形例は、本開示の範囲内のものとみなされる。処理４５５においても、添付物をメールサーバに送信した後に、ＨＴＴＰサーバは、記憶装置またはシステムから添付物を削除し、データベースにおけるウェブクライアントに関連付けられたレコードにおける添付物に関連付けられたデータを削除することもできる。代替的に、ＨＴＴＰサーバは、添付物に対する添付物位置情報または添付物表示データをデータベースにおけるウェブクライアントに関連付けられたレコードから削除するだけで、例えば、添付物が後のメッセージ用にメッセージサーバに提供される場合における更なる使用のために添付物を記憶装置または記憶システムに残してもよい。
【００４３】
他の実施形態では、ＨＴＴＰサーバは、添付物をメールサーバに送信するのではなく、例えば、ＨＴＴＰサーバが添付物位置情報をローカルメモリまたはデータベースから取得した後に、添付物位置情報をメールサーバに送信してメールサーバが添付物を記憶システムまたは装置自体から取得できるようにしてもよい。このような実施形態では、ＨＴＴＰサーバは、（例えば、ｅメールが複数の受信者を有する場合）メールサーバからの添付物を使用し得る１以上のメールの送信が成功したことの通知を受信した後に添付物を記憶装置から削除するとともにデータベースにおけるウェブクライアントに対するレコードを削除し、または添付物に対する添付物位置情報をデータベースにおけるウェブクライアントに関連付けられたレコードから削除することができる。添付物および／または添付物位置情報がメールまたはメッセージングサーバに提供された後、処理４６０において、状態情報がデータベースにおいて更新されて、例えば、ウェブクライアントがもはやメッセージ作成状態にないことを示す。代替的に、処理４６０において、ＨＴＴＰサーバは、データベースにおけるウェブクライアントについてのレコードを削除してもよい。処理４６０の後、処理手順４００は、手順が終了する処理４６５に進む。
【００４４】
図５に、実施形態による、ＨＴＴＰサーバについての例示の処理手順５００を図示する。処理手順５００は処理５１０で始まり、ｅメールシステムにアクセスするウェブクライアントに対するリクエストをＨＴＴＰサーバが受信する処理５１５に進む。このリクエストは、ｅメールシステムにログインするリクエスト、ｅメールデータのリクエスト、通知のリクエスト、およびｅメール作成インターフェイスを提供するウェブページへのアクセスのリクエストを含む任意の形態をとることができる。カレンダーシステム並びに通知および／または添付物に対応している他の何らかのシステムなど、他のタイプのシステムと相互作用するリクエストが考えられる。処理５２０において、ＨＴＴＰサーバは、ウェブクライアントに関連付けられた通信に対してｅメールサーバとの永続的接続を確立することができる。代替的に、処理５２０において、ＨＴＴＰサーバは、通知サーバがｅメールサーバと永続的接続を確立することを要求し、あるいは、ＨＴＴＰサーバが現在ウェブクライアントにサービス中であることを通知サーバに通知し、これに応じて、通知サーバがｅメールサーバとの永続的接続を確立するようにしてもよい。処理５２５において、ＨＴＴＰサーバは、ウェブクライアントを代理してｅメールデータを要求する。このリクエストは、処理５１５で受信されたリクエスト、またはｅメールデータについてウェブクライアントから受信された他の何らかのリクエストに基づいていればよい。処理５３０において、ＨＴＴＰサーバは、ウェブクライアントに対する通知を登録する。代替的に、処理５２０において、ＨＴＴＰサーバがウェブクライアントにサービスしていることを通知されたこと応じて、通知サーバがウェブクライアントに対する通知を登録してもよい。いずれかの装置からの登録リクエストは、そのような通知を受信するリクエストの任意の形態をとり、並びに／または処理５２０若しくは５２５においてＨＴＴＰサーバからｅメールサーバに送信される通信のような他のアクティビティに基づいて自動的に開始および／若しくは確立されることができる。
【００４５】
処理５３５において、ＨＴＴＰサーバは、ｅメールサーバからウェブクライアントに向けられた通知を受信する。処理５３５においても、通知の受信の肯定応答がＨＴＴＰサーバからｅメールサーバに送信され得る。ＨＴＴＰサーバは、この通知を受信したこと応じて、通知を記憶させることができる。一実施形態では、処理５４０ａにおいて、ＨＴＴＰサーバは、リクエストをローカルに（例えば、ローカルメモリ、ローカルハードディスクなどに）記憶させることができる。代替の実施形態では、ＨＴＴＰサーバは通知をデータベースに記憶させ、通知が記憶されたレコードをウェブクライアントに関連付けることができる。このレコードは、ここで説明したものを含む任意の手段を用いて（例えば、セッション識別子を用いるなどして）識別および／またはアクセスされ得る。さらに他の実施形態では、通知は記憶装置に記憶され、記憶装置における通知の位置が、ここで説明したものを含む任意の手段を用いて（例えば、通知を含むレコードを識別するセッション識別子を利用し、通知の表示およびセッション識別子の組合せを用いて位置特定される通知の表示を含むレコードを識別するセッション識別子を利用するなどして）データベースレコードにおいて示されてもよい。今後の取得のために通知を記憶してそれを識別する他のいずれの手段および方法も本開示の範囲内のものとみなされる。
【００４６】
代替的に、通知サーバが通知の受信および記憶を実行してもよい。したがって、処理５３５において、通知サーバが、ｅメールサーバからウェブクライアントに向けられた通知を受信してもよい。また５３５において、通知の受信の肯定応答が通知サーバからｅメールサーバに送信されるようにしてもよい。通知サーバは、この通知を受信に応答して、通知を記憶することができる。一実施形態では、処理５４０ａにおいて、通知サーバはリクエストをローカルに（例えば、ローカルメモリ、ローカルハードディスクなどに）記憶させることができる。代替の実施形態では、通知サーバは、通知をデータベースに記憶させ、通知が記憶されたレコードをウェブクライアントに関連付けることができる。このレコードは、ここで説明したものを含む任意の手段を用いて（例えば、セッション識別子を用いるなどして）識別および／またはアクセスされ得る。さらに他の実施形態では、通知は記憶装置に記憶され、記憶装置における通知の位置が、ここで説明したものを含む任意の手段を用いて（例えば、通知を含むレコードを識別するセッション識別子を用いること、通知の表示およびセッション識別子の組合せを用いて位置特定される通知の表示を含むレコードを識別するセッション識別子を用いることなどにより）データベースレコードにおいて示されてもよい。今後の取得のために通知をレコードしてそれを識別する他のいずれの手段および方法も本開示の範囲内のものとみなされる。
【００４７】
処理５４５において、通知が記憶されてから通信がＨＴＴＰサーバによって受信されたかについての判定が行われる。通信が受信されていない場合、処理は、後続の通知がＨＴＴＰサーバによって受信および記憶される処理５３５に戻る。通知が記憶されてから通信がＨＴＴＰサーバによって受信された場合、処理５５０において、ここに記載されるように通知が取得され、ウェブクライアントに送信される（例えば、ＨＴＴＰサーバによって直接取得され、またはＨＴＴＰサーバからの要求に応じて通知サーバによって取得されて通知サーバによってそこに提供される）。ウェブクライアントとの最後の通信以降に記憶された他のいずれの通知も、取得されてウェブクライアントに送信され得る。ウェブクライアントから受信される通信は任意のタイプのものであればよく、キープアライブ、またはｅメールデータ若しくはｅメールシステムとの更なるインタラクションのリクエストを含む。通信がデータまたはｅメールシステムとのインタラクションのリクエストである場合、ｅメールシステムから応答的に提供されたｅメールデータまたは通信は通知とともにウェブクライアントに提供される。
【００４８】
処理５５５において、ウェブクライアントに送信されたいずれの通知もＨＴＴＰサーバまたは通知サーバによってローカルストレージ、記憶装置および／またはデータベースから削除される。代替的に、送信された通知は、所定時間だけ、またはユーザがそれらの削除を要求するまで保持されてもよい。いずれの削除および消去手段並びに方法も本開示の範囲内のものとみなされる。通知の送信後、ＨＴＴＰサーバは追加の通知を待ち、処理５３５に戻る。ウェブクライアントとのセッションが時間切れとなり、あるいは切断された場合に、処理は終了する。
【００４９】
ある実施形態では、添付物を記憶装置またはシステムに記憶させた後、記憶された通知を含むサービスを（直接または通知サーバを用いて）ウェブクライアントに当初提供していたＨＴＴＰサーバが故障し、またはＨＴＴＰサーバとウェブクライアントの間の接続性が故障し得る。あるいは、ウェブクライアントを実行する装置の移動など、他の何らかの理由によって、ウェブクライアントにサービスを行うＨＴＴＰサーバが変わり得る。このような実施形態では、バックアップまたは冗長ＨＴＴＰサーバが、ウェブクライアントに対するＨＴＴＰサーバの機能をその後引き継ぐ。図６に、そのような実施形態によるＨＴＴＰサーバについての例示の処理手順６００を図示する。処理手順６００は処理６１０で開始し、ウェブクライアントがサービスを必要としていることの表示をバックアップＨＴＴＰサーバが受信する処理６１５に進む。処理６２０において、ＨＴＴＰサーバは、例えば、ウェブクライアントを実行しているウェブブラウザからクッキーを取得することによってウェブクライアント識別データを取得する。そのような識別情報は、ウェブクライアントおよび／またはウェブクライアントとその以前のＨＴＴＰサーバの間で以前に進行していた特定の通信セッションを識別するセッション識別子の形態をとることができる。処理６２７において、ＨＴＴＰサーバは、受信された識別情報を用いて、ｅメールシステムのアクセスをウェブクライアントに提供することを開始する。これは、ｅメールサーバへの永続的な接続を確立すること、並びにここに記載されるようにいずれかの今後入着する通知を記憶および送信すること、あるいはここに記載されるように通知サーバに通知を扱うように指示することを含み得る。他の実施形態では、ＨＴＴＰサーバは、ここに記載されるように通知の確認後まではｅメールシステムのアクセスをウェブクライアントに提供しなくてもよい。
【００５０】
処理６２５において、ＨＴＴＰサーバは、識別情報を用いて、係属中の通知（すなわち、通知がＨＴＴＰサーバによって、未だウェブクライアントへ送信されていない）がウェブクライアントに対して存在しているかを判定する。これは、データベースを照会して、ウェブクライアントに関連付けられたレコードが、ウェブクライアントに関連付けられた何らかの通知を示し、またはそれを含むかを判定することを含み得る。代替的に、ＨＴＴＰサーバは、係属中の通知の表示とともに、または通知を送信することによって応答する通知サーバを照会してもよい。処理６３０において、係属中の通知が存在しないことが判定された場合、処理６４０において、ＨＴＴＰサーバは、ｅメールシステムのアクセスをウェブクライアントに提供し始め、または提供し続ける。これは、ｅメールサーバへの永続的接続を確立すること、並びにここに記載するように今後入着するいずれの通知も記憶および送信することを含み得る。代替的に、これは、ここに記載するように通知サーバに通知を扱うように指示することを含み得る。なお、ある実施形態では、ＨＴＴＰサーバは、まずウェブクライアントの代理としてｅメールサーバとの接続を確立し、通知を確認する前にｅメールデータおよび／またはサービスを要求し得る。このような全ての実施形態は本開示の範囲内のものとみなされる。
【００５１】
処理６３０において、ウェブクライアントに未だ提供されていない通知があると判定された場合、処理６３５において、そのような通知が、例えばここに記載されるデータベース若しくはストレージから、または通知サーバを照会すること、あるいは通知サーバに通知を提供するように指示することから取得される。通知は、ウェブクライアントに送信され得る。これらの通知は、ｅメールサーバから今後入着する何らかのデータとともに送信され、または専用の通信において送信され得る。そのような通知をウェブクライアントに提供した後、処理６３７において、ＨＴＴＰサーバは通知をそれらの記憶位置（例えば、ローカルデータベース、ストレージ）から削除し、または通知サーバが使用中である場合には通知サーバが通知を削除する。代替的に、通知の受信の肯定応答がウェブクライアントから受信され、それ応じてＨＴＴＰサーバまたは通知サーバが通知を削除してもよい。
【００５２】
処理６４０において、ＨＴＴＰサーバは、ｅメールサーバとの永続的接続を確立することなどによってｅメールシステムのアクセスをウェブクライアントに提供し、ここに記載されるように今後入着する通知を記憶および送信する。なお、ある実施形態では、ＨＴＴＰサーバは、まずウェブクライアントの代理としてｅメールサーバとの接続を確立し、いずれかの通知を取得および送信する前に、ｅメールデータおよび／またはサービスを要求し得る。このような全ての実施形態は本開示の範囲内のものとみなされる。処理６４０の後、処理手順６００は、それらが終了する処理６４５に進む。
【００５３】
図７に、本開示の幾つかの実施形態による、ウェブクライアントと、ＨＴＴＰサーバ（および実施形態によっては通知サーバ）と、ｅメールサーバとの間で行われ得る例示の通信を示す非限定的な信号フロー７００を示す。なお、通知サーバの実施形態では、ＨＴＴＰサーバ７２０は、ＨＴＴＰサーバおよび通知サーバの双方を表し、それらのインタラクションの詳細は後述する。ウェブクライアント７１０は、通信７１１において、ＨＴＴＰサーバ７２０に対して、ｅメールシステムのアクセスまたはデータを要求し、あるいはｅメールシステムに関連する通信を送信する。これ応じて、ＨＴＴＰサーバ７２０は、ｅメールサーバ７３０との接続（例えば、永続的接続）を確立し、ｅメールデータを取得し、ウェブクライアント７１０に対する通知を登録し、および／またはウェブクライアント７１０の代理としてｅメールサーバ７３０と通信するリクエスト７２１を送信する。
【００５４】
代替的に、通信７１１応じて、ＨＴＴＰサーバ７２０は、ｅメールサーバ７３０との接続（例えば、永続的接続）を確立してウェブクライアント７１０に対する通知を登録するリクエスト７２１を送信することを通知サーバに通知し、あるいは通知サーバに指示する。リクエスト７２１の受信の確認、ｅメールデータ、接続データなどの何らかのデータを含む応答７３１が、ｅメールサーバ７３０からＨＴＴＰサーバ７２０に送信される。ＨＴＴＰサーバは、これに応じて、ウェブクライアント７１０に向けてｅメールサーバ７３０によって提供される何らかのデータを含む通信７２２をウェブクライアント７１０に送信する。
【００５５】
例えばｅメールサーバ７３０によるイベントの検出または生成に応じて、通知７３２がＨＴＴＰサーバ７２０に送信される。代替的に、通知７３２は、通知サーバに送信されてもよい。そのようなイベントは、ｅメールの受信、カレンダーによるリマインダ、ミーティング招待状など、ユーザが通知される任意のタイプのイベントであればよい。７２３において、ＨＴＴＰサーバ７２０またはそれに関連付けられた通知サーバは、通知をローカルに記憶すること、ウェブクライアント７１０に関連付けられた識別情報とともにデータベースレコードに通知を記憶すること、または通知をストレージに記憶するとともにウェブクライアント７１０に関連付けられた識別情報とともにデータベースレコードに通知位置情報を記憶することなど、任意の態様で通知を記憶する。通知の受信の肯定応答７２４がＨＴＴＰサーバ７２０または通知サーバによってｅメールサーバ７３０に送信される。後続の通知７３３がＨＴＴＰサーバ７２０または通知サーバによって受信され、７２５で記憶され、７２６において肯定応答される。他のいずれかの後続の通知も、ＨＴＴＰサーバ７２０または通知サーバによって同様に受信、記憶または肯定応答され得る。
【００５６】
ＨＴＴＰサーバ７２０は、ウェブクライアント７１０から、追加のｅメールデータまたはｅメールサーバ７３０とのインタラクションのリクエストである通信７１２を受信する。このような実施形態では、ＨＴＴＰサーバ７２０は、このリクエストをｅメールサーバ７３０に転送し、ｅメールサーバ７３０からの応答を受信する。代替的に、通信７１２は、単に、通常の処理手順に従ってウェブクライアント７１０によって送信されたキープアライブであってもよい。通信７１２の受信に応じて、ＨＴＴＰサーバ７２０はウェブクライアント７１０に対するいずれかの係属中の通知を取得する。これは、ローカルな取得、データベースからの取得、記憶装置からの取得、ここに記載される通知サーバの照会による取得、または他の任意の取得方法および手段を含み得る。係属中の通知は、通信７２８においてウェブクライアント７１０に送信され、これは通信７１２に応じて生成または受信された他の何らかのデータ若しくは通信を含み得る。
【００５７】
なお、上述したように、ここで説明する実施形態は、ｅメールサービスプロバイダ並びにｅメールサーバおよびシステムとの使用に限定されず、添付物を含み得る何らかのタイプのメッセージをユーザが作成しているがＨＴＴＰサーバへの接続が作成過程で切断され得る任意のシステム、またはユーザ消費に向けられた通知が生成され得る任意のシステムおいても使用され得る。例えば、多くのソーシャルメッセージングウェブサイトおよびユーザインタラクションを可能とする他のウェブサイトが、添付物を含むメッセージをユーザが相互に送信するとともに新たなメッセージまたはイベントの発生を示す通知をユーザに送信することを可能とするメッセージング機能を提供する。カレンダーサービスおよびミーティング調整サービスも、通知をユーザに送信してミーティングおよび差し迫ったイベントの招待状のユーザを警告することができる。当業者であれば、開示された実施形態がそのようなシステムに直ちに適用可能であり、そのような適用例が本開示の範囲内である実施形態とみなされることを理解するはずである。
【００５８】
また、例示の実施形態は、１以上のファイルをウェブクライアントに関連付け、または通知をユーザに提供する他のいずれかのシステムでも使用され得る。例えば、あるシステムは、ユーザがウェブクライアントを用いてファイルをサーバまたは他の装置にアップロードすることを可能とする。そのようなシステムでは、アップロードされるファイルが比較的大きい場合、それが２以上の部分に分割されてファイルのアップロードを促進してもよい（「マルチパートアップロード」ともいわれる）。一実施形態では、そのようなシステムは、データベースにおけるウェブクライアントについての状態情報を保存し、アップロードされているファイルの１以上の部分をここに記載されるような記憶装置またはシステムに記憶させることができる。位置情報が、ウェブクライアントに関連付けられたデータベースレコードに記憶され、あるいはメッセージ添付物に関してここに記載するように判定されてもよい。そのような実施形態では、ウェブクライアントがマルチパートアップロードを実行している間に通信先のＨＴＴＰサーバが利用できなくなった場合、バックアップまたは予備ＨＴＴＰサーバは、ウェブクライアントがマルチパートアップロードの過程にあったか、およびその場合にはマルチパートアップロードの１以上の部分がどこに記憶されるかを判定することができる。このようにして、そのようなシステムは、ウェブクライアントに当初サービスを行っていたＨＴＴＰサーバによって既に受信されたマルチパートアップロードの部分をウェブクライアントに再送信させてしまうことを防止することができる。
【００５９】
図８〜図１０は、ここに開示される実施形態が実施され得る例示の動作環境を示す点で図１および図２に類似し、これらの図面はそれらの動作環境を異なるレベルの細かさで図示する。図８は、複数のデータセンタを備えたプログラム可能な実行サービスプラットフォームを概略的に示す。図９は、複数のコンピュータを備えたデータセンタを概略的に示す。図１０はコンピュータを概略的に示す。
【００６０】
これらの図８〜図１０の動作環境が、図１および図２の動作環境の態様を実施するのに使用され得ることが分かる。例えば、ＨＴＴＰサーバ１３０および１４０、ストレージ１５０、データベース１６０並びにメールサーバ１７０は、図８のデータセンタ８０２において、または図８の複数のデータセンタ８０２にわたって実装される。同様に、図１および図２のインターネット１２０は図８のワイドエリアネットワークとなり、図１のユーザ装置１０１は図８の顧客コンピューティングシステム８０４となる。
【００６１】
図８のデータセンタ８０２内で、ＨＴＴＰサーバ１３０および１４０、ストレージ１５０、データベース１６０並びにメールサーバ１７０の各々は、図９のサーバコンピュータ９０２または９０４となる（それ自体は図１０のコンピュータ１０００となる）。図１および図２の通信リンク１１２、１２３、１２４、１５３、１５４、１６３、１６４、１７３および１７４は、図９のローカルエリアネットワーク９１６の部分となる。
【００６２】
ここで図８の詳細に戻ると、図８は、ここに記載される実施形態が実施され得る適切なコンピューティング環境の一実施例を示す。クラウドサービスプロバイダ（コンピューティングサービスプラットフォーム８０８など）が、図示するコンピューティング環境を構成して、エンティティの仮想クラウドをホスティングし、そうでない場合には隔離され得るこれらの仮想クラウド間の接続経路を可能とすることができる。特に、図８は、仮想クラウドを実装するため、および仮想機械インスタンスなどのコンピューティングリソースにオンデマンドのアクセスを提供するためのコンピューティングサービスプラットフォーム８０８を含む例示的動作環境８００を示すシステムおよびネットワーク図である。コンピューティングサービスプラットフォーム８０８は、アプリケーションを永続的にまたは必要に応じて実行するためのコンピューティングリソースを提供することができ、プライベートネットワークとして構成され得る。これらのコンピューティングリソースは、データ処理リソース、データ記憶リソース、データ通信リソースなどといった種々のタイプのリソースを含み得る。各タイプのコンピューティングリソースは、汎用のものであってもよいし、多数の特定の構成において利用可能なものであってもよい。例えば、データ処理リソースは、仮想機械インスタンスとして利用可能であればよい。インスタンスは、メールサーバ、ウェブサーバ、ＨＴＴＰサーバ、ストレージサーバ、アプリケーションサーバ、メディアサーバ、データベースサーバなどを含むアプリケーションを実行するように構成される。データ記憶リソースは、ファイル記憶装置、ブロック記憶装置などを含み得る。
【００６３】
各タイプまたは構成のコンピューティングリソースは、多数のプロセッサ、大量のメモリおよび／または大きな記憶容量からなる大型リソース並びに少数のプロセッサ、少量のメモリおよび／または小さな記憶容量からなる小型リソースのような異なるサイズで利用可能となる。エンティティは、例えば、多数の小型処理リソースをウェブサーバ、ＨＴＴＰサーバに、および／または大型処理リソースをデータベースサーバに割り当てるように選択することができる。
【００６４】
コンピューティングサービスプラットフォーム８０８によって提供されるコンピューティングリソースは、１以上のデータセンタ８０２Ａ〜８０２Ｎによって有効化されることができ、これは単数形または複数形で「データセンタ８０２」といわれる。データセンタ８０２は、コンピュータシステムおよび関連の構成要素を収容して動作させる設備であればよく、冗長およびバックアップ用の電源、通信、冷却およびセキュリティのシステムを含み得る。各データセンタ８０２は、同じ設備内などの同じ地理的領域に位置し、コンピューティングサービスプラットフォーム８０８のサービスプロバイダによって制御および管理される光束ファイバ光ネットワークなどのプライベートネットワークを用いて相互接続されていればよい。データセンタ８０２はまた、地理的に異なる位置にわたって分散され、インターネットなどの公衆ネットワークを用いて部分的に相互接続されていてもよい。ここに開示される概念および技術を実施するデータセンタ８０２のための１つの例示的構成を、図９を参照して以下に説明する。
【００６５】
コンピューティングサービスプラットフォーム８０８のエンティティは、ワイドエリアネットワーク（ＷＡＮ）８０６を介してデータセンタ８０２によって提供されるコンピューティングリソースにアクセスすることができる。図８ではＷＡＮを示すが、ローカルエリアネットワーク（ＬＡＮ）、インターネットまたはデータセンタ８０２を遠隔のエンティティおよび他のユーザに接続する当業者に公知の他の任意のネットワーク化技術が利用され得ることが理解されるべきである。そのようなネットワークの組合せも利用され得ることも理解されるべきである。
【００６６】
コンピューティングサービスプラットフォーム８０８の顧客である一エンティティまたは他のエンティティは、顧客コンピューティングシステム８０４を利用して、データセンタ８０２によって提供されるコンピューティングリソースにアクセスすることができる。顧客コンピューティングシステム８０４は、サーバコンピュータ、デスクトップ若しくはラップトップパーソナルコンピュータ、タブレットコンピュータ、ワイヤレス電話機、ＰＤＡ、ｅ−リーダ、ゲームコンソール、セットトップボックスまたは他の任意のコンピューティング装置といった、コンピューティングサービスプラットフォーム８０８にアクセスすることができるコンピュータを含み得る。
【００６７】
より詳細を以下に説明するように、顧客コンピューティングシステム８０４は、コンピューティングサービスプラットフォーム８０８によって提供されるコンピューティングリソースの態様を構成するのに利用され得る。これに関して、コンピューティングサービスプラットフォーム８０８は、顧客コンピューティングシステム８０４上で実行されるウェブブラウザアプリケーションプログラムの使用を介してその動作の態様が構成され得るウェブインターフェイスを提供することができる。代替的に、顧客コンピューティングシステム８０４上で実行されるスタンドアロンアプリケーションプログラムが、構成処理を実行するためにコンピューティングサービスプラットフォーム８０８によって公開されるアプリケーションプログラミングインターフェイス（ＡＰＩ）にアクセスするようにしてもよい。コンピューティングサービスプラットフォーム８０８上に新たな仮想機械インスタンスを起動することを含め、コンピューティングサービスプラットフォーム８０８の動作を構成するための他の機構が利用されてもよい。
【００６８】
ここに開示される実施形態によると、コンピューティングサービスプラットフォーム８０８によって提供された購入済みコンピューティングリソースの能力は、要求に応じてスケーリングされ得る。これに関して、スケーリングとは、要求に応じてコンピューティングリソースのインスタンスを、ここでは「起動」若しくは「作成」ともいうインスタンス化、またはここでは「逆スケーリング」ともいう終端する処理をいう。
【００６９】
自動スケーリングは、リソースに対する要求の増加または鎮静化に応じてコンピューティングリソースをスケーリングするための一機構となり得る。自動スケーリングによって、コンピューティングサービスプラットフォーム８０８のエンティティが、それらの購入済みコンピューティングリソースをエンティティによって規定された条件に従ってスケーリングできるようになる。例えば、要求の急増などの特定の条件の発生に応じて特定の態様で容量を拡大するように規則が規定されてもよい。同様に、要求の鎮静化などの他の条件の発生に応じて特定の態様で容量を縮小するように規則が規定されてもよい。仮想機械インスタンスを起動するためのここに開示される機構は、エンティティによってインスタンスが手動で起動される場合、またはインスタンスがコンピューティングサービスプラットフォーム８０８における自動スケーリング構成要素によって起動される場合に利用され得る。
【００７０】
コンピューティングサービスプラットフォーム８０８は、コンピューティングリソースの新たなインスタンスの展開においてエンティティを補助する展開構成要素で構成されてもよい。展開構成要素は、どのようにして新たなインスタンスが構成されるべきかを記述するデータを含み得る構成をエンティティから受信することができる。例えば、構成は、新たなインスタンスにインストールされるべき１以上のアプリケーションまたはソフトウェアを指定し、新たなインスタンスで実行されるスクリプトおよび／または他のタイプのコードを提供し、アプリケーションキャッシュが準備されるべきかを指定するキャッシュ警告ロジックおよび他のタイプの情報を提供することができる。展開構成要素は、エンティティに提供された構成およびキャッシュ警告ロジックを利用して、コンピューティングリソースの新たなインスタンスを起動、構成および刺激する。
【００７１】
図９に、コンピューティングサービスプラットフォーム８０８を実施するデータセンタ８０２についての一構成を示すコンピューティングシステム図を示す。図９に示す例示のデータセンタ８０２は、仮想クラウドをホスティングするため、およびアプリケーションを実行するためのコンピューティングリソースを提供するために、幾つかのサーバコンピュータ９０２Ａ〜９０２Ｎを含み、これは単数形で「サーバコンピュータ９０２」または複数形で「サーバコンピュータ９０２」ともいわれる。サーバコンピュータ９０２は、上述のコンピューティングリソースを提供するために適切に構成された標準型タワーまたはラックマウントサーバコンピュータであればよい。例えば、一実施例では、サーバコンピュータ９０２は、コンピューティングリソースのインスタンス９０６Ａ〜９０６Ｎを提供するように構成され得る。
【００７２】
「インスタンス９０６Ａ〜９０６Ｎ」は、ここでは単数形で「インスタンス９０６」または複数形で「インスタンス９０６」といわれ、仮想機械インスタンスであればよい。当技術で知られているように、仮想機械インスタンスは、物理的な機械など、プログラムを実行する機械（すなわち、コンピュータ）のソフトウェア実装のインスタンスである。仮想機械インスタンスの実施例では、各サーバコンピュータ９０２は、インスタンスを実行することができるインスタンスマネージャ９０８を実行するように構成され得る。インスタンスマネージャ９０８は、例えば、単一のサーバコンピュータ９０２上で複数のインスタンス９０６の実行を可能とするように構成されたハイパーバイザまたは他のタイプのプログラムであればよい。インスタンス９０６の各々は、アプリケーションの全部または一部を実行するように構成される。
【００７３】
ここに開示される実施形態は、主に仮想機械インスタンスの関連で説明されるが、他のタイプのインスタンスが、ここに開示される概念および技術で利用され得ることが理解されるべきである。例えば、ここに開示される技術は記憶リソースのインスタンス、データ通信リソースのインスタンスおよび他のタイプのリソースとともに利用されてもよい。ここに開示される実施形態はまた、仮想機械インスタンスを利用せずにコンピュータシステム上で直接にアプリケーションの全部または一部を実行するようにしてもよい。
【００７４】
図９に示すデータセンタ８０２はまた、データセンタ８０２、サーバコンピュータ９０２およびインスタンス９０６の動作を管理するためのソフトウェアを実行するために登録されたサーバコンピュータ９０４を含む。特に、サーバコンピュータ９０４は、管理構成要素９１０を実行することができる。上述したように、コンピューティングサービスプラットフォーム８０８のエンティティは、顧客コンピューティングシステム８０４を利用して管理構成要素９１０にアクセスして、コンピューティングサービスプラットフォーム８０８およびエンティティによって購入されたインスタンス９０６の動作の種々の態様を構成することができる。例えば、エンティティは、インスタンスを購入し、インスタンスの構成に対する変更を行うことができる。エンティティはまた、購入したインスタンスが要求に応じてどのようにスケーリングされるべきかについての設定を指定することができる。エンティティはまた、インスタンスを起動するリクエストを管理構成要素９１０に与えることができる。
【００７５】
上記においても簡潔に述べたように、自動スケーリング構成要素９１２は、コンピューティングサービスプラットフォーム８０８のエンティティによって規定される規則に基づいてインスタンス９０６をスケーリングすることができる。例えば、自動スケーリング構成要素９１２によって、エンティティが、新たなインスタンスがいつインスタンス化されるべきかを判定する際に使用するためのスケールアップ規則を指定し、現存のインスタンスがいつ終了されるべきかを判定する際に使用するためのスケールダウン規則を指定することができる。
【００７６】
自動スケーリング構成要素９１２は、単一のサーバコンピュータ９０４で、またはコンピューティングサービスプラットフォーム８０８における複数のサーバコンピュータ９０２にわたって並列に実行されることができる。さらに、自動スケーリング構成要素９１２は、異なるサーバコンピュータ９０２上で実行される多数の副構成要素またはコンピューティングサービスプラットフォーム８０８における他のコンピューティング装置からなっていてもよい。自動スケーリング構成要素９１２は、ソフトウェア、ハードウェアまたはこれら２つの任意の組合せとして実施され得る。自動スケーリング構成要素９１２は、例えば、内部管理ネットワークを介してコンピューティングサービスプラットフォーム８０８において利用可能なコンピューティングリソースを監視することができる。
【００７７】
上記において簡潔に述べたように、データセンタ８０２はまた、コンピューティングリソースの新たなインスタンス９０６の展開においてエンティティを補助する展開構成要素９１４で構成され得る。展開構成要素９１４は、新たなインスタンス９０６がどのように構成されるべきかを記述するデータを含む構成をエンティティから受信することができる。例えば、構成は、新たなインスタンス９０６にインストールされるべき１以上のアプリケーションを指定し、新たなインスタンス９０６を構成するために実行されるスクリプトおよび／または他のタイプのコードを提供し、アプリケーションキャッシュがどのように準備されるべきかを指定するキャッシュ警告ロジックおよび他のタイプの情報を提供することができる。
【００７８】
展開構成要素９１４は、エンティティに提供された構成およびキャッシュ警告ロジックを利用して、コンピューティングリソースの新たなインスタンス９０６を構成、刺激および起動することができる。構成、キャッシュ警告ロジックおよび他の情報は、エンティティが管理構成要素９１０を用いることによって、またはこの情報を展開構成要素９１４に直接提供することによって指定され得る。展開構成要素９１４の動作を構成するのに他の機構が利用されてもよい。
【００７９】
図９に示す実施例のデータセンタ８０２では、サーバコンピュータ９０２Ａ〜９０２Ｎおよびサーバコンピュータ９０４を相互接続するのに適切なＬＡＮ９１６が利用される。ＬＡＮ９１６はまた、図８に示すＷＡＮ８０６に接続され得る。図８および図９に示すネットワークトポロジは大幅に簡略化されていること並びにここに開示される種々のコンピューティングシステムを相互接続するためにより多数のネットワークおよびネットワーク化装置が利用され得ることが理解されるべきである。適切な負荷均衡化装置またはソフトウェアモジュールが、各データセンタ８０２Ａ〜８０２Ｎの間、各データセンタ８０２における各サーバコンピュータ９０２Ａ〜９０２Ｎの間、およびコンピューティングサービスプラットフォーム８０８の各エンティティによって購入されたインスタンス９０６の間の負荷を均衡化するために利用されてもよい。これらのネットワークトボロジおよび装置は当業者には明らかである。
【００８０】
図９に記載されるデータセンタ８０２は例示に過ぎないことおよび他の実施例が利用され得ることが理解されるべきである。特に、管理構成要素９１０、自動スケーリング構成要素９１２および展開構成要素９１４によって実行されるものとしてここに記載される機能性は、相互に実行されてもよいし、他の構成要素によって実行されてもよいし、これらまたは他の構成要素の組合せによって実行されてもよい。したがって、この機能性はソフトウェア、ハードウェアまたはソフトウェアとハードウェアの組合せで実施されてもよいことが理解されるべきである。他の実施例は当業者には明らかである。
【００８１】
図１０に、上記ソフトウェアを実行することができるコンピュータ１０００のための例示のコンピュータアーキテクチャを図示する。図１０に示すコンピュータアーキテクチャは従来のサーバコンピュータ、ワークステーション、デスクトップコンピュータ、ラップトップ、タブレット、ネットワーク装置、ＰＤＡ、ｅリーダ、デジタル携帯電話または他のコンピューティング装置を示し、ユーザ装置１０１、ＨＴＴＰサーバ１３０および１４０、ストレージ１５０、データベース１６０、メールサーバ１７０上で、データセンタ８０２Ａ〜８０２Ｎ内で、サーバコンピュータ９０２Ａ〜９０２Ｎ上で、顧客コンピューティングシステム８０４上で、またはここに記載した他のいずれかのコンピューティングシステム上で実行されるものとして記載されてここに提示されたソフトウェアのいずれかの態様を実行するように利用され得る。
【００８２】
コンピュータ１０００は、これは多数の構成要素若しくは装置がシステムバス若しくは他の電気通信経路によって接続される印刷回路基板であるベースボードまたは「マザーボード」を含み得る。１以上の中央処理装置（ＣＰＵ）１００４がチップセット１００６と共に動作することができる。ＣＰＵ１００４は、コンピュータ１０００の動作のために必要な計算および論理演算を実行する標準的なプログラマブルプロセッサであればよい。
【００８３】
ＣＰＵ１００４は、１つの独立した物理状態から次の状態へと状態間を異ならせて状態を変化させるスイッチング要素の操作を介して遷移させることによって必要な演算を実行することができる。スイッチング要素は一般に、２進状態の１つを保持するフリップフロップなどの電子回路、１以上の他のスイッチング要素の状態の論理の組合せに基づいて出力状態を与える論理ゲートなどの電子回路を含み得る。これらの基本的なスイッチング要素は、レジスタ、加算器−減算器、計算論理装置、浮動小数点装置などを含む、より複雑な論理回路を形成するように組み合わされることができる。
【００８４】
チップセット１００６は、ＣＰＵ１００４と、ベースボード上の構成要素および装置の残りの部分との間のインターフェイスを与えることができる。チップセット１００６は、コンピュータ１０００における主メモリとして使用されるランダムアクセスメモリ（ＲＡＭ）１００８とのインターフェイスを与えることができる。チップセット１００６は、コンピュータ１０００を起動し、種々の構成要素と装置の間で情報を転送するのを補助する基本ルーチンを記憶するための読出し専用メモリ（ＲＯＭ）１０２０または不揮発性ＲＡＭ（ＮＶＲＡＭ）などのコンピュータ可読記憶媒体へのインターフェイスをさらに与えることができる。ＲＯＭ１０２０またはＮＶＲＡＭはまた、ここに記載される実施形態に応じて、コンピュータ１０００の動作に必要な他のソフトウェアを記憶することもできる。
【００８５】
コンピュータ１０００は、ネットワーク９１６を介した遠隔コンピューティング装置およびコンピュータシステムとの論理接続を用いてネットワーク化された環境において動作することができる。チップセット１００６は、ギガビットイーサネットアダプタなどのネットワークインターフェイスコントローラ（ＮＩＣ）１０２２によってネットワーク接続を与えるための機能を含み得る。ＮＩＣ１０２２は、コンピュータ１０００を他のコンピューティング装置にネットワーク９１６を介して接続することができる。コンピュータを他のタイプのネットワークおよび遠隔コンピュータシステムに接続する複数のＮＩＣ１０２２がコンピュータ１０００に存在し得ることが理解されるべきである。
【００８６】
コンピュータ１０００は、コンピュータに不揮発性の記憶を与える大容量記憶装置１０２８に接続され得る。大容量記憶装置１０２８は、システムプログラム、アプリケーションプログラム、より詳細をここに説明してきたメッセージ添付物、ウェブクライアント状態データおよび通知を含む他のプログラムモジュール並びにデータを記憶することができる。大容量記憶装置１０２８は、チップセット１００６に接続されたストレージコントローラ１０２４を介してコンピュータ１０００に接続され得る。大容量記憶装置１０２８は、１以上の物理記憶装置で構成されていればよい。ストレージコントローラ１０２４は、Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ（ＳＡＳ）Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ）によるインターフェイス、Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（ＳＡＴＡ）インターフェイス、Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ（ＦＣ）インターフェイス、またはコンピュータと物理記憶装置の間を物理的に接続してデータを転送するための他のタイプのインターフェイスを介して、物理記憶装置とインターフェイスすることができる。
【００８７】
コンピュータ１０００は、記憶されている情報を反映するように物理記憶装置の物理状態を変換することによって大容量記憶装置１０２８にデータを記憶させることができる。物理状態の具体的変換は、種々の要因および本説明における異なる実施例に依存し得る。そのような要因の例は、以下に限定されないが、大容量記憶装置１０２８が一次ストレージまたは二次ストレージなどとして特徴付けられるかにかかわらず、物理記憶装置を実装するのに使用される技術を含む。
【００８８】
例えば、コンピュータ１０００は、磁気ディスクドライブ装置内の特定位置の磁気特性、光学記憶装置における特定位置の反射若しくは屈折特性または半導体記憶装置における特定のコンデンサ、トランジスタ若しくは他のディスクリート部品の電気的特性を変更するようにストレージコントローラ１０２４を介して指示を発生させることによって大容量記憶装置１０２８に情報を記憶することができる。物理媒体の他の変換が、この説明を容易化する目的のみのために与えられた上記実施例とともに、本説明の範囲および精神から逸脱することなく可能となる。コンピュータ１０００はさらに、物理記憶装置内の１以上の特定位置の特性の物理状態を検出することによって大容量記憶装置１０２８から情報を読み取ることができる。
【００８９】
上述した大容量記憶装置１０２８に加えて、コンピュータ１０００は、他のコンピュータ可読記憶媒体へのアクセスを有して、プログラムモジュール、データ構造体または他のデータなどの情報を記憶および取得することができる。当業者であれば、コンピュータ可読記憶媒体は、非一時的なデータの記憶を提供し、コンピュータ１０００によってアクセスされ得る任意の利用可能な媒体であればよいことが分かるはずである。
【００９０】
例示として、限定的にではなく、コンピュータ可読記憶媒体は、任意の方法または技術において実施される揮発性および不揮発性、一時的および非一時的、取外し可能および取外し可能でない媒体を含み得る。コンピュータ可読記憶媒体は、以下に限定されないが、ＲＡＭ、ＲＯＭ、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ若しくは他の半導体メモリ手段、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、高精細ＤＶＤ（ＨＤ−ＤＶＤ）、ＢＬＵ−ＲＡＹ若しくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気記憶装置、または所望の情報を非一時的な態様で記憶するのに使用できる他の任意の媒体を含む。
【００９１】
大容量記憶装置１０２８は、コンピュータ１０００の動作を制御するのに利用されるオペレーティングシステムを記憶することができる。一実施形態によると、オペレーティングシステムは、所定バージョンのＬＩＮＵＸオペレーティングシステムからなる。他の実施形態によると、オペレーティングシステムは、ＭＩＣＲＯＳＯＦＴ  Ｃｏｒｐｏｒａｔｉｏｎ社製の所定バージョンのＷＩＮＤＯＷＳ  ＳＥＲＶＥＲオペレーティングシステムからなる。更なる実施形態によると、オペレーティングシステムは、所定バージョンのＵＮＩＸオペレーティングシステムからなる。他のオペレーティングシステムも利用され得ることが理解されるべきである。大容量記憶装置１０２８は、管理構成要素９１０および／または上述した他のソフトウェアなど、コンピュータ１０００によって利用される他のシステムまたはアプリケーションプログラムおよびデータを記憶することができる。
【００９２】
大容量記憶装置１０２８または他のコンピュータ可読記憶媒体はまた、コンピュータ１０００に読み込まれると、汎用コンピューティングシステムを、ここに記載される実施形態を実施することができる特定用途コンピュータに変化させるコンピュータ実行可能指示で符号化され得る。これらのコンピュータ実行可能指示は、上述したように、ＣＰＵ１００４がどのように状態間で遷移するかを指定することによってコンピュータ１０００を変化させる。コンピュータ１０００は、コンピュータ実行可能指示を記憶するコンピュータ可読記憶媒体へのアクセスを有し、それはコンピュータ１０００によって実行されると図３〜図６に示した処理手順を実行することができる。
【００９３】
コンピュータ１０００はまた、キーボード、マウス、タッチパッド、タッチ画面、電子スタイラスまたは他のタイプの入力装置など、多数の入力装置からの入力を受けて処理するための入力／出力コントローラ１０３２を含み得る。同様に、入力／出力コントローラ１０３２は、コンピュータ画面、フラットパネルディスプレイ、デジタルプロジェクタ、プリンタ、プロッタまたは他のタイプの出力装置などの表示装置に出力を供給することができる。コンピュータ１０００は図１０に示す構成要素の全てを含んでいなくてもよく、図１０に明示的に示していない他の構成要素を含んでいてもよく、または図１０に示すものとは完全に異なるアーキテクチャを利用してもよい。
【００９４】
図面に示したネットワークトポロジは大幅に簡略化されていること並びにここに開示される種々のコンピューティングシステムを相互接続するのにより多くのネットワークおよびネットワーク化装置が利用されてもよいことが理解されるべきである。これらのネットワークトポロジおよび装置は、当業者には明らかである。
【００９５】
図面におけるシステムは例示に過ぎないことおよび他の実施例が使用され得ることも理解されるべきである。さらに、ここに開示される機能は、ソフトウェア、ハードウェアまたはソフトウェアとハードウェアの組合せで実施され得ることが理解されるべきである。他の実施例は、当業者には明らかである。サーバ、ゲートウェイまたは他のコンピューティング装置は、記載したタイプの機能を相互作用させ、実行することができるハードウェアまたはソフトウェアの任意の組合せを備えていればよく、限定ではなく、デスクトップまたは他のコンピュータ、データベースサーバ、ネットワーク記憶装置および他のネットワーク装置、ＰＤＡ、タブレット、携帯電話機、ワイヤレス電話機、ページャ、電子オーガナイザ、インターネット機器、（例えば、セットトップボックスおよび／またはパーソナル／デジタルビデオレコーダを用いる）テレビベースのシステム並びに適切な通信能力を含む種々の他のコンピュータ製品を含む。さらに、例示したモジュールによって与えられる機能は、ある実施形態では、より少ないモジュールに組み合わされ、または追加のモジュールで分散され得る。同様に、ある実施形態では、例示のモジュールの一部の機能が与えられなくてもよく、および／または他の追加の機能が利用可能であってもよい。
【００９６】
前述の部分に記載された処理、プロセッサ、方法およびアルゴリズムの各々は、１以上のコンピュータまたはコンピュータプロセッサによって実行可能な符号モジュールに組み込まれ、それによって全部または部分的に自動化されてもよい。符号モジュールは、ハードドライブ、半導体メモリ、光学ディスクなどといった任意のタイプの非一時的コンピュータ可読記憶媒体またはコンピュータ記憶装置に記憶され得る。処理およびアルゴリズムは、特定用途向け回路において部分的にまたは全体的に実施され得る。開示される処理および処理ステップの結果は、永続的に、あるいは、例えば揮発性または不揮発性ストレージなどの任意のタイプの非一時的コンピュータストレージに記憶され得る。
【００９７】
上述した種々の構成および処理は、相互に独立して用いられてもよいし、種々の態様で組み合わされてもよい。全ての可能な組合せおよび部分的な組合せは、本開示の範囲に含まれるものである。さらに、ある実施例では、所定の方法または処理ブロックが省略されてもよい。ここに記載される方法および処理はまた、いずれの特定の順序にも限定されず、それに関連するブロックまたは状態は、適切な他の順序で実行され得る。例えば、記載したブロック、処理および状態は、具体的に開示されたものとは異なる順序で実行されてもよいし、複数のブロックまたは状態が単一のブロックまたは状態にまとめられてもよい。例示のブロック、処理および状態は、直列的に、並行して、または他の何らかの態様で実行されてもよい。ブロック、処理および状態が、開示される例示の実施形態に対して追加または削除されてもよい。ここに記載される例示のシステムおよび構成要素は、記載されたのとは異なるように構成されてもよい。例えば、要素が、開示される例示の実施形態と比べて追加、削除または再構成されてもよい。
【００９８】
種々の項目は使用中にメモリまたはストレージに記憶されるものとして示されていること並びにこれらの項目またはその部分はメモリ管理およびデータ整合性の目的のためにメモリと他の記憶装置の間で移動されてもよいことも理解されるはずである。代替的に、他の実施形態では、ソフトウェアモジュールおよび／またはシステムの一部または全部が、他の装置上のメモリで実行され、例示のコンピューティングシステムとコンピュータ間通信を介して通信してもよい。またさらに、ある実施形態では、システムおよび／またはモジュールの一部または全部は、以下に限定されないが、１以上の特定用途向け集積回路（ＡＳＩＣ）、標準集積回路、コントローラ（例えば、適切な指示を実行することによって、並びにマイクロコントローラおよび／または内蔵コントローラを含む）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、複合プログラマブルロジックデバイス（ＣＰＬＤ）など、少なくとも部分的にファームウェアおよび／またはハードウェアなどで他の態様で実施または提供されてもよい。モジュール、システムおよびデータ構造体の一部または全部はまた、適切なドライブによってまたは適切な接続を介して読み取られるハードディスク、メモリ、ネットワークまたは可搬媒体物品などのコンピュータ可読媒体に（例えば、ソフトウェア指示または構造化データとして）記憶され得る。システム、モジュールおよびデータ構造体はまた、無線ベースおよび有線／配線ベースの媒体を含む様々なコンピュータ可読伝送媒体上で、生成されたデータ信号として（例えば、搬送波の一部または他のアナログ若しくはデジタル伝搬信号として）転送され、（例えば、単一若しくは多重化アナログ信号の一部として、または複数の個別のデジタルパケット若しくはフレームとして）様々な形態を採り得る。そのようなコンピュータプログラム製品も他の実施形態では他の形態を採り得る。したがって、本発明は、他のコンピュータシステム構成で実施され得る。  
【００９９】
開示の実施形態は、以下の条項の観点で記載されることができる。
１．方法であって、
ハイパーテキスト転送プロトコル（ＨＴＴＰ）サーバにおいて、ｅメールシステムとのインタラクションのリクエストをウェブクライアントから受信すること、
前記ＨＴＴＰサーバによって前記ｅメールシステムとの永続的接続を確立すること、
前記ＨＴＴＰサーバにおいて、前記ウェブクライアントに関連付けられた通知をｅメールシステムから受信すること、
前記ＨＴＴＰサーバによって前記通知を記憶させること、
前記ＨＴＴＰサーバにおいて前記ウェブクライアントから通信を受信すること、
前記通信を受信したこと応じて、前記ＨＴＴＰサーバによって前記通知を取得すること、および
前記ＨＴＴＰサーバから前記ウェブクライアントに前記通知を送信すること
を備える方法。
２．条項１の方法において、前記ＨＴＴＰサーバが、前記通知をデータベース、記憶装置またはローカル記憶装置の少なくとも１つに記憶させる、方法。
３．いずれかの先行する条項の方法であって、
前記ＨＴＴＰサーバにおいて、前記ウェブクライアントに関連付けられた第２の通知を前記ｅメールシステムから受信すること、
前記ＨＴＴＰサーバによって前記第２の通知を記憶させること、
第２のＨＴＴＰサーバにおいて前記ウェブクライアントから第２の通信を受信すること、
前記第２のＨＴＴＰサーバによって、前記第２の通知が記憶されたことを判定すること、
前記第２の通知を取得すること、および
前記第２のＨＴＴＰサーバから前記ウェブクライアントに前記第２の通知を送信すること
をさらに備える方法。
４．いずれかの先行する条項の方法において、前記通知がｅメールデータで前記ＨＴＴＰサーバによって送信される、方法。
５．システムであって、
指示を備えたメモリ、および
前記メモリに結合されたプロセッサであって、前記指示を実行すると、
サーバにアクセスするリクエストをウェブクライアントから受信すること、
前記サーバとの永続的接続を確立すること、
前記ウェブクライアントに関連付けられた通知を前記サーバから受信すること、
前記通知を記憶させること、および
前記ウェブクライアントから受信された後続の通信に応じて前記通知を前記ウェブクライアントに送信すること
を含む処理を実行する前記プロセッサ
を備えたシステム。
６．条項５のシステムにおいて、前記処理が、前記ウェブクライアントについての識別情報を生成することをさらに含む、システム。
７．条項６のシステムにおいて、前記通知を記憶させることが、前記通知および前記識別情報をデータベースレコードに記憶することを含む、システム。
８．条項６のシステムにおいて、前記通知を記憶させることが、前記通知を記憶装置に記憶し、前記通知および前記識別情報についての記憶装置位置情報をデータベースレコードに記憶することを含む、システム。
９．条項５から８のいずれかのシステムにおいて、前記処理が、前記通知を前記ウェブクライアントに送信した後に前記通知を削除することをさらに含む、システム。
１０．条項５から９のいずれかのシステムにおいて、前記サーバとの永続的接続を確立することが、前記サーバとの永続的接続を確立するように通知サーバを指示することを含む、システム。
１１．コンピュータによって実施される方法であって、
ハイパーテキスト転送プロトコル（ＨＴＴＰ）サーバにおいて、サーバにアクセスするリクエストをウェブクライアントから受信すること、
前記ＨＴＴＰサーバがデータベースを照会することによって、前記ウェブクライアントに関連付けられた通知が第２のＨＴＴＰサーバによって記憶されたことを判定すること、
前記ＨＴＴＰサーバによって前記通信を受信すること、および
前記通知を前記ウェブクライアントに送信すること
を備える方法。
１２．条項１１のコンピュータによって実施される方法であって、前記通知についての記憶装置位置情報を前記ウェブクライアントについての識別情報に基づいて特定することをさらに含む方法。
１３．条項１２のコンピュータによって実施される方法において、前記サーバにアクセスする前記リクエストが前記識別情報を備える、方法。
１４．条項１１から１３のいずれかのコンピュータによって実施される方法であって、前記通知を前記ウェブクライアントに送信した後に前記通知を削除することをさらに含む方法。
１５．条項１１から１４のいずれかのコンピュータによって実施される方法において、前記通知を取得することが、記憶装置、データベースまたは通知サーバの少なくとも１つから前記通知を取得することを含む、方法。
１６．条項１１から１５のいずれかのコンピュータによって実施される方法であって、前記サーバへのアクセスを前記ウェブクライアントに与えることをさらに含む方法。
１７．非一時的コンピュータ可読記憶媒体であって、プロセッサによって実行されると、プロセッサに、
サーバにアクセスするリクエストをウェブクライアントから受信すること、
前記サーバとの永続的接続を確立すること、
前記ウェブクライアントに関連付けられた通知を前記サーバから受信すること、
前記通知を記憶させること、および
前記ウェブクライアントから受信された後続の通信に応じて前記通知を前記ウェブクライアントに送信すること
を含む処理を実行させるコンピュータ実行可能指示を備えた非一時的コンピュータ可読記憶媒体。
１８．条項１７の非一時的コンピュータ可読記憶媒体において、前記処理が、前記ウェブクライアントについての識別情報を生成することをさらに含む、非一時的コンピュータ可読記憶媒体。
１９．条項１８の非一時的コンピュータ可読記憶媒体において、前記通知を記憶させることが、前記通知および前記識別情報をデータベースレコードに記憶することを含む、非一時的コンピュータ可読記憶媒体。
２０．条項１８の非一時的コンピュータ可読記憶媒体において、前記通知を記憶させることが、前記通知を記憶装置に記憶し、前記通知および前記識別情報についての記憶装置位置情報をデータベースレコードに記憶することを含む、非一時的コンピュータ可読記憶媒体。
２１．条項１７から２０のいずれかの非一時的コンピュータ可読記憶媒体において、前記処理が、前記ウェブクライアントに関連付けられた通知を受信するリクエストを前記サーバに送信することをさらに含む、非一時的コンピュータ可読記憶媒体。
２２．条項１７から２１のいずれかの非一時的コンピュータ可読記憶媒体において、前記通知を前記ウェブクライアントに送信することが、前記サーバから受信された追加のデータとともに前記通知を送信することを含む、非一時的コンピュータ可読記憶媒体。
２３．方法であって、
第１のＨＴＴＰサーバにおいてウェブクライアントから、ｅメールに関連付けられた添付物を受信すること、
前記第１のＨＴＴＰサーバによって前記添付物を記憶装置に記憶すること、
前記第１のＨＴＴＰサーバによって前記添付物に対する記憶装置位置情報をデータベースに記憶すること、
第２のＨＴＴＰサーバにおいて前記ウェブクライアントからサービスに対するリクエストを受信すること、
前記第２のＨＴＴＰサーバにおいて前記ウェブクライアントについての識別情報を特定すること、
前記第２のＨＴＴＰサーバによって前記記憶装置位置情報を前記データベースから取得すること、
前記第２のＨＴＴＰサーバによって、前記記憶装置位置情報を用いて前記添付物を前記記憶装置から取得すること、および
前記添付物をメールサーバに送信すること
を備える方法。
２４．条項２３の方法において、前記ウェブクライアントについての前記識別情報を特定することが、前記ウェブクライアントを実行する装置に記憶されたデータからのセッション識別子を特定することを含む、方法。
２５．条項２３または２４の方法であって、前記第１のＨＴＴＰサーバによって、前記データベースにおける前記ウェブクライアントの状態を更新することをさらに含む方法。
２６．条項２３から２５のいずれかの方法であって、前記第２のＨＴＴＰサーバによって、前記記憶装置位置情報を前記データベースから除去することをさらに含む方法。
２７．システムであって、
指示を備えたメモリ、および
前記メモリに結合されたプロセッサであって、前記指示を実行すると、
アクセス可能でなくなっているサーバとの通信セッションを確立したウェブクライアントからサービスに対するリクエストを受信すること、
前記ウェブクライアントについての識別情報を特定すること、
添付物についての記憶装置位置情報を取得すること、
前記記憶位置情報を用いて前記添付物を記憶装置から取得すること、および
前記添付物をメッセージングサーバに送信すること
を含む処理を実行する前記プロセッサ
を備えたシステム。
２８．条項２７のシステムにおいて、前記ウェブクライアントについての前記識別情報がセッション識別子を備える、システム。
２９．条項２７または２８のシステムにおいて、前記記憶装置位置情報がデータベースから取得される、システム。
３０．条項２９のシステムにおいて、前記処理が、前記データベースにおける前記ウェブクライアントの状態を更新することをさらに含む、システム。
３１．条項２７から３０のいずれかのシステムにおいて、前記記憶装置位置情報が、アクセス可能でなくなっている前記サーバによって記憶されたものである、システム。
３２．条項２７から３１のいずれかのシステムにおいて、前記処理が、前記添付物に関連付けられたメッセージを送信するリクエストを受信することをさらに含む、システム。
３３．コンピュータによって実施される方法であって、
ハイパーテキスト転送プロトコル（ＨＴＴＰ）サーバにおいて、ウェブクライアントから、該ウェブクライアントにおいて作成されたメッセージに関連付けられた添付物を受信すること、
前記ＨＴＴＰサーバによって、第２のＨＴＴＰサーバによって前記添付物をアクセス可能な記憶装置に記憶すること、および
前記ＨＴＴＰサーバによって、前記添付物についての記憶装置位置情報を記憶させること
を備える方法。
３４．条項３３のコンピュータによって実施される方法であって、前記記憶装置位置情報を、データベースにおいて前記ウェブクライアントに関連付けられたレコードに関連付けることをさらに含む方法。
３５．条項３４のコンピュータによって実施される方法であって、前記データベースにおける前記ウェブクライアントの状態を更新することをさらに含む方法。
３６．条項３４のコンピュータによって実施される方法において、前記添付物についての前記記憶装置位置情報を記憶させることが、前記ウェブクライアントに関連付けられたセッション識別子を備えるデータベースにおけるレコードを生成することを含む、方法。
３７．条項３４のコンピュータによって実施される方法において、前記データベースが前記第２のＨＴＴＰサーバによってアクセス可能である、方法。
３８．条項３３から３７のいずれかのコンピュータによって実施される方法であって、前記ウェブクライアントがメッセージ作成状態にあることの表示を受信することをさらに含む方法。
３９．非一時的コンピュータ可読記憶媒体であって、プロセッサによって実行されると、プロセッサに、
アクセス可能でなくなっているサーバとの通信セッションを確立したウェブクライアントからサービスに対するリクエストを受信すること、
前記ウェブクライアントについての識別情報を特定すること、
添付物についての記憶装置位置情報を取得すること、
前記記憶位置情報を用いて前記添付物を記憶装置から取得すること、および
前記添付物をメッセージングサーバに送信すること
を含む処理を実行させるコンピュータ実行可能指示を備えた非一時的コンピュータ可読記憶媒体。
４０．条項３９の非一時的コンピュータ可読記憶媒体において、前記ウェブクライアントについての前記識別情報がセッション識別子を備える、非一時的コンピュータ可読記憶媒体。
４１．条項３９または４０の非一時的コンピュータ可読記憶媒体において、前記記憶装置位置情報がデータベースから取得される、非一時的コンピュータ可読記憶媒体。
４２．条項４１の非一時的コンピュータ可読記憶媒体において、前記処理が、前記データベースにおける前記ウェブクライアントの状態を更新することをさらに含む、非一時的コンピュータ可読記憶媒体。
４３．条項３９から４２のいずれかの非一時的コンピュータ可読記憶媒体において、前記記憶装置位置情報が、アクセス可能でなくなっている前記サーバによって記憶された、非一時的コンピュータ可読記憶媒体。
４４．条項４０から４３のいずれかの非一時的コンピュータ可読記憶媒体において、前記処理が、前記添付物に関連付けられたメッセージを送信するリクエストを受信することをさらに含む、非一時的コンピュータ可読記憶媒体。
【０１００】
とりわけ「ｃａｎ」、「ｃｏｕｌｄ」、「ｍｉｇｈｔ」、「ｍａｙ」、「例えば」などのここで使用される条件付き文言は、特に断りがない限り、または使用される文脈内でそうでないものとして理解されない限り、一般に、所定の実施形態が、他の実施形態がそれを含まなくても、所定の構成、要素および／または処理を含むことを意図するものである。したがって、そのような条件付き文言は一般に、構成、要素および／若しくは処理が任意の態様で１以上の実施形態に必要となること、または１以上の実施形態が、著者の記入若しくは働きかけの有無にかかわらず、いずれかの特定の実施形態においてこれらの構成、要素および／若しくは処理が含まれるのか、または実行されるのかを決定するための論理を必然的に含むことを示唆するものではない。用語「備える／からなる」、「含む」、「有する」などは同義であり、包括的に、拡張可能な態様で使用され、追加的な要素、構成、行為、処理などを除外するものではない。また、用語「または／若しくは」は、その包括的な意味で（その排他的な意味ではなく）、例えば、要素の列挙を接続するのに使用される場合に、用語「または／若しくは」が列挙における要素の１つ、一部または全部を意味するように使用される。
【０１０１】
特定の例示の実施形態を説明したが、これらの実施形態は、例示目的のみで提示されたものであり、ここに開示される発明の範囲を限定するものではない。したがって、上記説明中のいずれも、何らかの特定の構成、特性、処理、モジュールまたはブロックが必須または不可欠であることを意図するものではない。もちろん、ここに記載される新規の方法およびシステムは、他の様々な形態で具現化され得る。またさらに、ここに記載される方法およびシステムの形態における種々の省略、置換および変更は、ここに開示される発明の精神から逸脱することなくなされ得る。付随する特許請求の範囲およびそれらの均等の範囲は、ここに開示される発明の範囲および精神に含まれることになるような形態または変形例を包含する。
【図１】
0006279744.tif 000002
【図２】
0006279744.tif 000003
【図３】
0006279744.tif 000004
【図４】
0006279744.tif 000005
【図５】
0006279744.tif 000006
【図６】
0006279744.tif 000007
【図７】
0006279744.tif 000008
【図８】
0006279744.tif 000009
【図９】
0006279744.tif 000010
【図１０】
0006279744.tif 000011