(57)【要約】【課題】  集約される結果が多数のサーバによって非同期にもたらされる、コンテキスト依存型の要求結果についてのクライアント側集約に関する。【解決手段】  本発明は、要求中のクライアントがコンテンツを集約する、多数のサーバにより非同期に生成されたコンテンツのＨＴＴＰ要求を処理するための解決法を開示する。この解決法においては、クライアントは、コンテンツ要求を要求受信サーバに出すことができる。コンテンツ要求は、要求コンテキストを規定することができる。要求受信サーバは、プレースホルダを含む初期のコンテンツをクライアントに配信し、非同期要求を多数のプレースホルダ・コンテンツ・サーバに出し、その後、スレッド／プロセスを終了し、要求コンテキストの処理に必要とされるリソースを解放することができる。プレースホルダ・コンテンツ・サーバの各々は、非同期要求の１つを処理し、プレースホルダ・コンテンツ結果を結果配信サービスに伝達することができる。結果配信サービスは、クライアントに、プレースホルダ・コンテンツを提供することができる。クライアントは、全てのソースからのコンテンツを集約することができる。【選択図】      図１
2010537290.tif 000002
【特許請求の範囲】
【請求項１】
要求コンテキストに従ってクライアント要求を処理する方法であって、
クライアントが、要求コンテキストを規定するコンテンツ要求を要求受信サーバに出すステップと、
前記要求受信サーバが、プレースホルダを含む初期のコンテンツを前記クライアントに配信し、非同期要求を複数のプレースホルダ・コンテンツ・サーバに出し、その後スレッド／プロセスを終了し、前記要求コンテキストの処理に必要とされるリソースを解放するステップと、
前記プレースホルダ・コンテンツ・サーバの各々が、前記非同期要求の１つを処理し、プレースホルダ・コンテンツを結果配信サービスに伝達するステップと、
前記結果配信サービスが、前記クライアントに前記プレースホルダ・コンテンツを提供するステップと、
前記クライアントが、前記初期のコンテンツ及び前記プレースホルダ・コンテンツを集約するステップと、
を含む方法。
【請求項２】
前記コンテンツ要求は、前記クライアントのブラウザにより出されたＨＴＴＰ要求であり、前記初期のコンテンツ及び前記プレースホルダ・コンテンツは、マークアップ言語で書かれ、集約されたコンテンツは、前記ブラウザ内でレンダリングされる、請求項１に記載の方法。
【請求項３】
前記要求受信サーバは公開ウェブ・サーバであり、前記プレースホルダ・コンテンツ・サーバの少なくとも１つは、公的にアクセス可能なウェブ・サーバでない専用サーバである、請求項１又は請求項２に記載の方法。
【請求項４】
前記プレースホルダは、それぞれウェブ・コンテンツのコンテナであり、遠隔要求ディスパッチャ（ＲＲＤ）は、前記プレースホルダの１つのために用い得るタイプのコンテナの１つである、請求項１から請求項３のいずれか１項に記載の方法。
【請求項５】
前記結果配信サービスは、ＲＥＳＴｆｕｌ要求を処理するように構成されたサーバ側プログラムである、前記請求項のいずれかに記載の方法。
【請求項６】
前記結果配信サービスが前記要求を満たす対応するプレースホルダ・コンテンツを提供することによって各要求に応答するまで、前記クライアントが、１組の要求を前記結果配信サービスに繰り返し出すステップをさらに含み、前記要求の組は、前記プレースホルダごとのコンテンツ要求を含む、前記請求項のいずれかに記載の方法。
【請求項７】
前記クライアントが前記結果配信サービスから受信したプレースホルダ・コンテンツを含む応答の各々について、前記クライアントが、前記プレースホルダ・コンテンツに特有のインターフェースの一部をリフレッシュし、前記プレースホルダ・コンテンツが前記インターフェース内でレンダリングされるようにするステップをさらに含む、請求項６に記載の方法。
【請求項８】
前記の集約を行うステップが、コンテンツを集約するときに、非同期メッセージ及び非同期集約動作を用いる、前記請求項のいずれかに記載の方法。
【請求項９】
前記ステップは、少なくとも１つのマシンにより実行可能な複数のコード・セクションを有する少なくとも１つのコンピュータ・プログラムに従って、少なくとも１つのマシンにより自動的に実行され、前記少なくとも１つのコンピュータ・プログラムはマシン可読媒体に格納される、前記請求項のいずれかに記載の方法。
【請求項１０】
要求コンテキストに従ってクライアント要求を処理するためのシステムであって、
要求コンテキストを規定するコンテンツ要求を遠隔配置されたコンテンツ・サーバに伝達するように構成されたクライアントを含み、要求結果は前記クライアントのインターフェース内に提示され、前記要求結果は、そのサーバのコンテンツを生成するために、各々が動作を非同期に実行する複数のサーバにより生成されたコンテンツを含み、前記クライアントは、前記複数のサーバからの前記コンテンツを集約する、システム。
【請求項１１】
前記複数のサーバによって生成された結果を受信するように構成された結果配信サービスをさらに含み、前記結果配信サービスは、前記結果を１組の非同期式通信内のクライアントに提供する、請求項１０に記載のシステム。
【請求項１２】
前記結果配信サービスは、ＲＥＳＴｆｕｌ要求を受信し、これを処理し、これに応答するように構成されたサーバ側プログラムである、請求項１１に記載のシステム。
【請求項１３】
前記複数のサーバの１つは要求受信サーバであり、前記要求受信サーバは、前記コンテンツ要求を受信し、少なくとも１つのプロセス／スレッドを開始して前記要求コンテキストを処理するように構成され、前記要求受信サーバは、初期のコンテンツ及びプレースホルダを前記クライアントに伝達し、前記クライアントは受信時に前記初期のコンテンツ及びプレースホルダをレンダリングし、前記要求受信サーバは、結果配信サーバへのコンテンツの提供を担う前記複数のサーバの各々について１つ、複数の非同期プレースホルダ・コンテンツ要求を開始し、前記要求受信サーバが前記非同期のプレースホルダ・コンテンツ要求を開始したとき、及び、前記初期のコンテンツ及びプレースホルダを前記クライアントに伝達したとき、前記要求コンテキストを処理するための前記少なくとも１つのプロセス／スレッドが終了され、関連したリソースが解放される、請求項１１又は請求項１２に記載のシステム。
【請求項１４】
前記要求コンテキストにおける要求は、前記クライアントにより非同期に受信され、受信時に前記クライアントの前記インターフェース内に非同期にレンダリングされ、前記要求コンテンツは、要求受信サーバにより生成され、前記クライアントに伝達されたプレースホルダを含む初期のコンテンツを含み、前記要求コンテンツは、前記要求受信サーバにより開始された１組の非同期コンテンツ要求に応答して１組の遠隔サーバにより生成されたプレースホルダ・コンテンツを含み、前記遠隔サーバは、それらの結果を前記結果配信サービスに提供する、請求項１１から請求項１３のいずれかに記載のシステム。
【請求項１５】
コンピュータ・システムにロードされ、そこで実行されたときに、前記コンピュータ・システムに、請求項１１から請求項１４のいずれかに記載の方法の全てのステップを実行させる、コンピュータ・プログラム・コードを含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＨＴＴＰ要求の処理に関するものであり、より特定的には、集約される結果が多数のサーバによって非同期にもたらされる場合における、コンテキスト依存（context-sensitive）型の要求結果についてのクライアント側集約に関する。
【背景技術】
【０００２】
アプリケーション・サーバ・アーキテクチャにおいては、多くの場合、他のリソースへのｉｎｃｌｕｄｅｓ又はｆｏｒｗａｒｄｓといった、実行されるべき１組の動作を含む要求が、リソース（ＵＲＬ）に対してなされる。一般に、遅延の発生という点で、僅かな割合の動作にも費用がかかる。従来の要求ライフサイクルの同期性質により、ある動作が招いた遅延が全体にわたって影響を及ぼすことになる。さらに、要求の処理を主に担当するサーバのリソースが、要求コンテキスト（一連の要求処理）が完全に処理され、応答が要求中のクライアントに伝達されるまで拘束される。さらに、連続的に実行される全ての動作からの応答を一次サーバが集約するまで、要求中のクライアントは、それらの要求への応答を受信しない。
【０００３】
上記の問題に対する現在の解決法は、要求されたウェブ・ページの各部分をクライアントからの別個の異なる要求と関連付ける、フレーム又はｓｅｒｖｅｒ  ｓｉｄｅ  ｉｎｃｌｕｄｅｓ（ＳＳＩ）を利用することを含む。しかしながら、フレーム及びＳＳＩを利用することにより、別個の異なる要求間でオリジナルの要求に関連したコンテキストを共有することができなくなる。要求によって呼び出される動作は、クライアントによって送られた、又は、ディスパッチ前の処理において設定されたオリジナルの要求情報へのアクセスを必要とするので、これらの要求間でコンテキストを共有することは非常に望ましい。
【０００４】
異なるコンテナ型及び言語からのコンテンツを共有される要求コンテキストと同期的に集約するための解決法があることは、例えば米国特許出願第１１／４５６，９０５号によって知られている。つまり、参照される解決法は、遠隔要求ディスパッチャ（Ｒｅｍｏｔｅ  Ｒｅｑｕｅｓｔ  Ｄｉｓｐａｔｃｈｅｒ、ＲＲＤ）がポートレット及び他のコンテナを処理するのを可能にする拡張可能なフレームワークを提供した。この技術は、サーバが、１組のサーバにわたって要求処理動作を分散させることを可能にする。従って、単一の要求コンテキストが多数のサーバによって処理される。しかしながら、開示された解決法は、一次サーバが、同期的に行なわれる遠隔コンテンツの戻り、非シリアル化、及びシリアル化された応答の戻りを待つことを、依然として要求するものである。
【０００５】
単一のアプリケーション・サーバ環境における非同期のコンテキスト依存型要求動作のクライアント側集約のための解決法があることも知られている。この解決法は、代わりに集約の責任をクライアントにオフロードすることによって、メモリ及び要求処理リソースの点で費用がかかり得る動作結果の集約を担当しているサーバ又はプロキシの問題を解決する。しかしながら、このクライアント側集約は、単一のサーバに対するものに制限され、要求コンテキストを多数のサーバに送ることができない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、上述のように、従来技術のシステムによって残された未解決の問題に対処する必要性がある。
【課題を解決するための手段】
【０００７】
従って、本発明は、第１の態様において、クライアントが、要求コンテキストを定めるコンテンツ要求を要求受信サーバに出すことと、要求受信サーバが、プレースホルダを含む初期のコンテンツをクライアントに配信し、非同期要求を複数のプレースホルダ・コンテンツ・サーバに出し、その後スレッド／プロセスを終了し、要求コンテキストの処理に必要とされるリソースを解放することと、プレースホルダ・コンテンツ・サーバの各々が、非同期要求の１つを処理し、プレースホルダ・コンテンツ結果を結果配信サービスに伝達することと、結果配信サービスが、クライアントにプレースホルダ・コンテンツを提供することと、クライアントが初期のコンテンツ及びプレースホルダ・コンテンツを集約することとを含む、要求コンテキストにおけるクライアント要求に応答する方法を提供する。
【０００８】
コンテンツ要求は、クライアントのブラウザにより出されたＨＴＴＰ要求であり、初期のコンテンツ及びプレースホルダ・コンテンツは、マークアップ言語で書かれ、集約されたコンテンツは、ブラウザ内でレンダリングされることが好ましい。
【０００９】
要求受信サーバは公開ウェブ・サーバであり、プレースホルダ・コンテンツ・サーバの少なくとも１つは、公的にアクセス可能なウェブ・サーバでない専用サーバであることが好ましい。
【００１０】
プレースホルダは、それぞれウェブ・コンテンツのコンテナであり、遠隔要求ディスパッチャ（ＲＲＤ）は、プレースホルダの１つのために用い得るタイプのコンテナの１つであることが好ましい。
【００１１】
結果配信サービスは、ＲＥＳＴｆｕｌ要求を処理するように構成されたサーバ側プログラムであることが好ましい。
【００１２】
この方法は、結果配信サービスが要求を満たす対応するプレースホルダ・コンテンツを提供することによって各要求に応答するまで、クライアントが、１組の要求を結果配信サービスに繰り返し出すことをさらに含むことができ、１組の要求は、プレースホルダごとのコンテンツ要求を含む。
【００１３】
この方法は、クライアントが結果配信サービスから受信したプレースホルダ・コンテンツを含む応答の各々について、クライアントが、プレースホルダ・コンテンツに特有のインターフェースの一部をリフレッシュし、プレースホルダ・コンテンツがインターフェース内でレンダリングされるようにすることをさらに含むことができる。
【００１４】
集約するステップは、コンテンツを集約するときに、非同期メッセージ及び非同期集約動作を用いることが好ましい。
【００１５】
上記のステップは、少なくとも１つのマシンにより実行可能な複数のコード・セクションを有する少なくとも１つのコンピュータ・プログラムに従って少なくとも１つのマシンにより自動的に実行され、少なくとも１つのコンピュータ・プログラムはマシン可読媒体に格納されることが好ましい。
【００１６】
第２の態様によると、要求コンテキストを定めるコンテンツ要求を遠隔配置されたコンテンツ・サーバに伝達するように構成されたクライアントを含み、要求結果はクライアントのインターフェース内に提示され、要求結果は、そのサーバのコンテンツを生成するために、各々が動作を非同期に実行する複数のサーバにより生成されたコンテンツを含み、クライアントは、複数のサーバからのコンテンツを集約する、要求コンテキストにおけるクライアント要求に応答するためのシステムが提供される。
【００１７】
このシステムは、複数のサーバによって生成された結果を受信するように構成された結果配信サービスをさらに含むことができ、結果配信サービスは、結果を１組の非同期通信を行っているクライアントに提供する。
【００１８】
結果配信サービスは、ＲＥＳＴｆｕｌ要求を受信し、これを処理し、これに応答するように構成されたサーバ側プログラムであることが好ましい。
【００１９】
複数のサービスの１つは要求受信サーバであり、要求受信サーバは、コンテンツ要求を受信し、少なくとも１つのプロセス／スレッドを開始して要求コンテキストを処理するように構成され、要求受信サーバは、初期のコンテンツ及びプレースホルダをクライアントに伝達し、クライアントは受信時に初期のコンテンツ及びプレースホルダをレンダリングし、要求受信サーバは、結果配信サーバへのコンテンツの提供を担う複数のサーバの各々について１つ、複数の非同期プレースホルダ・コンテンツ要求を開始し、要求受信サーバが非同期プレースホルダ・コンテンツ要求を開始したとき、及び、初期のコンテンツ及びプレースホルダをクライアントに伝達したとき、要求コンテキストを処理するための少なくとも１つのプロセス／スレッドが終了され、関連したリソースが解放されることが好ましい。
【００２０】
要求コンテキストにおける要求は、クライアントにより非同期に受信され、受信時にクライアントのインターフェース内に非同期にレンダリングされ、要求コンテンツは、要求受信サーバにより生成され、クライアントに伝達されたプレースホルダを含む初期のコンテンツを含み、要求コンテンツは、要求受信サーバにより開始された１組の非同期コンテンツ要求に応答して１組の遠隔サーバにより生成されたプレースホルダ・コンテンツを含み、遠隔サーバは、それらの結果を結果配信サービスに提供することが好ましい。
【００２１】
第３の態様において、コンピュータ・システムにロードされ、そこで実行されたときに、コンピュータ・システムに、第１の態様による方法の全てのステップを実行させる、コンピュータ・プログラム・コードを含むコンピュータ・プログラムが提供される。
【００２２】
マシン可読媒体に格納された１組のマシン可読命令を含む結果配信サービスを設けることができ、１組のマシン可読命令は、少なくとも１つのマシンによって実行可能であり、少なくとも１つのマシンに、複数の異なるコンテンツ提供サーバからの要求コンテキストに関連した結果を受信し、格納するステップと；要求コンテキストを定めるコンテンツ要求を開始したクライアントから複数の非同期要求を受信するステップと；それぞれの受信したクライアント要求に応答して、結果が利用可能になったときにコンテンツ供給サーバから得られた格納された結果をクライアントに提供するステップとを実行させる。
【００２３】
結果配信サービスは、ＲＥＳＴｆｕｌ要求に応答するように構成されたソフトウェア・プログラムであることが好ましい。
【００２４】
このサービスは、ＲＥＳＴｆｕｌ要求を処理するように構成されたサーバ側プログラムであることが好ましい。
【００２５】
受信された結果の各々は、非同期ＨＴＴＰメッセージによって結果配信サービスに伝達され、クライアントからの非同期要求の各々は非同期ＨＴＴＰメッセージによって特定され、格納された結果は、ＨＴＴＰメッセージによってクライアントに与えられる。
【００２６】
結果配信サービスは、結果を格納するとき、各々の結果を、要求コンテキストを定めるコンテンツ要求を初めに出したクライアントの識別子と関連付けることと、非同期要求を受信するクライアントの識別子を関連した識別子に対してチェックすることと、チェックされた識別子が関連した識別子と合致するときにだけ、格納された結果を提供することとをさらに含むことができる。
【００２７】
要求受信サーバは、最初に、クライアントからコンテンツ要求を受信し、複数のプレースホルダを含む１組の初期のコンテンツをクライアントに伝達し、複数の非同期要求を生成し、コンテンツ提供サーバに結果配信サービスに伝達される結果を生成させることが好ましい。
【００２８】
本発明の好ましい実施形態は、結果が多数のサーバによって非同期に処理される、コンテキスト依存型の要求結果に関するクライアント側における集約のための解決法を開示する。この解決法においては、クライアントは、要求されたコンテンツが幾つかの遠隔コンテンツの集約である場合、公開サーバからコンテンツの一部を要求することができる。遠隔コンテンツは、非公開サーバより適宜に与えられる。公開サーバは、１つ又は複数のプレースホルダを含むコンテンツをクライアントに戻すことができる。次に、公開サーバは、各々がプレースホルダについてのコンテンツの提供を担う遠隔サーバへの１つ又は複数のプロセス／スレッドを開始することができる。遠隔サーバの１つが、依然として同じ要求コンテキストの一部であるコンテンツの処理を終えると、コンテンツを結果配信サービスに伝達することができる。クライアントは、プレースホルダごとに１つのクエリを結果配信サービスに送ることができる。プレースホルダ・コンテンツが利用可能になると、サービスによってこれをクライアントに伝達することができる。クライアントは、受信したときにサービスが提供したコンテンツと関連する提示されたウェブ・ページの一部分を完了することができる。提示されたウェブ・ページの他の部分を更新する必要はない。
【００２９】
開示された解決法は、従来の技術に優る明らかな利点を有する。具体的には、発信元サーバにより開始された全てのＲｅｑｕｅｓｔＤｉｓｐａｔｃｈｅｒ  ｉｎｃｌｕｄｅｓが、多数のサーバによって非同期に処理され、要求中のクライアントとコンテンツを処理又は提供するサーバの間で負荷が均一に分散され、そのことにより、いずれの周知の解決法より大きい処理能力が可能になる。クライアントは、コンテンツが利用可能になった段階でコンテンツを受信し、そのことは、ユーザの経験を向上させる。要求受信サーバには、多数の遠隔サーバからのコンテンツの集約は課されず、要求コンテキストの間、メモリ又は他の限定されたリソースを費やすことを強制されない。寧ろ、一旦要求受信サーバがプレースホルダを有するコンテンツをクライアントに伝達し、プレースホルダ・コンテンツについてのスレッドを他のサーバにもたらすと、要求受信サーバは、要求コンテキストのその部分を終える。結果配信サービスは、サーブレット、Ｊａｖａ  Ｓｅｒｖｉｃｅ  Ｐａｇｅ（ＪＳＰ）、ＡＳＰ、及びＥＳＢコンポーネントなどのＲＥＳＴｆｕｌ（例えば、ＨＴＴＰ）要求を供給できるいずれのコンポーネントとすることもできる。
【００３０】
本発明は、ここに提示される材料と一致する多数の態様に従って実施することができる。例えば、本発明の１つの態様は、要求コンテキストにおけるクライアント要求に応答する方法を含むことができる。この方法は、クライアントがコンテキスト要求を要求受信サーバに出すステップを含むことができる。コンテキスト要求は、要求コンテキストを定めることができる。要求受信サーバは、プレースホルダを含む初期のコンテキストをクライアントに配送し、非同期要求を多数のプレースホルダ・コンテンツ・サーバに出し、その後、スレッド／プロセスを終わらせ、要求コンテキストの処理に必要とされるリソースを解放することができる。プレースホルダ・コンテンツ・サーバの各々は、非同期要求の１つ又は複数を処理し、プレースホルダ・コンテンツ結果を結果配信サービスに伝達することができる。結果配信サービスは、クライアントにプレースホルダ・コンテンツを提供することができる。クライアントは、全てのソースからのコンテンツを集約することができる。
【００３１】
本発明の別の態様は、コンテンツ要求を遠隔に配置されたコンテンツ・サーバに伝達するように構成された、クライアントを含む要求コンテキストのクライアント要求を処理するためのシステムを含むことができる。コンテンツ要求は、要求コンテキストを定めることができる。要求結果は、クライアントのインターフェース内に提示することができる。要求結果は、それぞれ、そのサーバのコンテンツを生成するために動作を非同期に実行する２つ又はそれ以上のサーバにより生成されたコンテンツを含むことができる。クライアントは、コンテンツ生成サーバからのコンテンツを集約することができる。
【００３２】
本発明のさらに別の態様は、コンテンツ要求がクライアントにより集約される、多数のサーバにより処理されるコンテンツ要求を処理するシステム内で用いられる、結果配信サービスを含むことができる。結果配信サービスは、１つ又は複数の異なるコンテンツ提供サーバからの要求コンテキストに関連した結果を受信し、格納することができる。結果配信サービスはまた、要求コンテキストを定めるコンテンツ要求を開始したクライアントからの非同期要求を受信することもできる。受信したクライアント要求の各々に応答して、結果配信サービスは、サービスがこれらの結果を利用できるようになると、コンテンツ提供サーバから得られた格納された結果をクライアントに提供することができる。
【００３３】
本発明の種々の態様は、ここに説明される機能を実装するようにコンピュータ機器を制御するためのプログラムとして、又は、コンピュータ機器がここに開示されるステップに対応するプロセスを実行するのを可能にするためのプログラムとして実施できることに留意すべきである。このプログラムは、プログラムを磁気ディスク、光ディスク、半導体メモリ、又は他のいずれかの記録媒体に格納することによって提供することができる。プログラムはまた、搬送波を介して伝達されるデジタル・コード化された信号として提供することもできる。説明されたプログラムは、単一のプログラムとすることができ、又は、多数のサブプログラムとして実装することができ、その各々は、単一のコンピュータ装置内で相互作用するか、又はネットワーク空間にわたって分散方式で相互作用する。
【００３４】
ここで、本発明の好ましい実施形態を、一例として、添付の図面を参照して説明する。
【図面の簡単な説明】
【００３５】
【図１】結果が多数のサーバによって非同期に処理される、コンテキスト依存型要求結果のクライアント側集約のためのシステムの概略図である。
【図２】ここに開示される本発明の構成の実施形態による、クライアントが、非同期メッセージを通して共通の要求コンテキスト内で多数のサーバからのコンテンツを集約する、プロセスフロー図である。
【発明を実施するための形態】
【００３６】
図１は、結果が多数のサーバにより非同期に処理される、コンテキスト依存型要求結果のクライアント側集約のためのシステム１００の概略図である。システム１００において、クライアント１１０のブラウザ１１４は、サーバ側１０２の公開サーバ１２０からコンテンツを要求１５０することができる。サーバ１２０は、要求１５０を満たすコンテンツの一部を提供することができ、サーバ１２５及び／又は１３０などの他のサーバは、要求１５０の別の部分についてのコンテンツを提供することができる。サーバ１２０は、サーバ１２５及び１３０への非同期要求１５４及び１５６を開始する。サーバ１２０は、潜在的にプレースホルダ１５２を含むコンテンツを、またクライアント１１０に伝達する。クライアント１１０は、インターフェース１１５内に、応答１５２によって戻されたコンテンツ１１８を即座に提示することができる。１組のプレースホルダ１１６、１１７をコンテンツ内に含ませることができ、ここで、プレースホルダ１１６、１１７は、非同期スレッド１５４及び１５６から結果として得られるコンテンツと関連付けられる。
【００３７】
サーバ１２０は、この時点で、その要求１５０の処理を終えており、要求１５０の処理専用のありとあらゆるリソース及び格納されたコンテンツを解放することができる。つまり、サーバ１２５−１３０によって生成された付加的な結果（例えば、プレースホルダ１１６、１１７のフィラー・コンテンツ）は、後で他の要求１６２、１６６により結果配信サービス１３５から取り出されるので、オリジナルの要求１５０を処理するスレッド／プロセスが解放される。
【００３８】
サーバ１２５は、非同期要求１５４を処理し、結果１６０を結果配信サービス１３５に提供することができる。同様に、サーバ１３０は、非同期要求１５６を処理し、結果１５８を結果配信サービス１３５に提供することができる。サーバ１２５及び１３０の各々が要求結果１５８又は１６０を提供すると、そのサーバ１２５又は１３０は、要求コンテキストについて必要とされるタスクを完了する。要求１５４、１５６を処理するためにもたらされた全てのスレッド／プロセスを終了させ、関連したリソースを解放することができる。
【００３９】
クライアント１１０は、プレースホルダ・コンテンツ（すなわち、サーバ１２５により提供されるプレースホルダ１１６のためのコンテンツ）を非同期に要求１６２し、結果配信サービス１３５からプレースホルダ・コンテンツ（すなわち、サーバ１３０により提供されるプレースホルダ１１７のためのコンテンツ）を非同期に要求する１６６ことができる。要求された１６２、１６６コンテンツが利用可能になると、結果配信サービス１３５は、それを結果１６４及び１６８としてクライアント１１０に配信することができる。結果１６４、１６８を受信し次第、結果１６４、１６８と関連したインターフェース１１５領域を更新することによって、関連したプレースホルダ１１６又は１１７にコンテンツを取り込むことができる。インターフェース１１５の他の部分を更新する必要はない。
【００４０】
システム１００において、サーバ１２０、１２５及び１３０は、ネットワークからのＨｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＨＴＴＰ）要求を処理することができ、かつ、これらの要求へのＨＴＴＰ応答を提供できるコンピュータ・システムとすることができる。サーバ１２０−１３０の各々は、ＨＴＴＰ要求を伝達するとき、サーバ１２０−１３０の識別のために用いられるＵｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）と関連付けることができる。ＨＴＴＰ応答は、静的コンテンツ及び動的コンテンツを含むことができる。典型的には、サーバ１２０により生成される初期のコンテンツ及びプレースホルダ１５２は、静的コンテンツを含み、サーバ１２５及び１３０により生成される初期のコンテンツ及びプレースホルダは、動的コンテンツを含む。サーバ１２０、１２５及び１３０の各々は、認証サポート、暗号化されたチャネル・サポート（例えば、Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ（ＴＬＳ）技術、Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ（ＳＳＬ）技術等によるＨＴＴＰＳサポート）、コンテンツ圧縮・解凍サポート等といった多数の随意的な機能を含むことができる。サーバ１２０−１３０の各々は、リソースを割り当てて、受信した要求１５０、１５４、１５６を処理することができ、そのサーバの処理タスクが完了すると、これらのリソースを解放することができる。つまり、要求コンテキストを処理するためにいずれかのサーバ１２０−１３０を用いる時間は、要求コンテキストを処理するために必要とされる全時間より少ない。サーバ１２０−１３０は、物理的マシン内、及び、仮想化ソリューション（例えば、ＶＭＷＡＲＥ、ＭＳ  ＶＩＲＴＵＡＬ  ＳＥＲＶＥＲ等）により与えられるもののような仮想コンピュータ装置内に実装することができる。
【００４１】
サーバ１２５−１３０の１つ又は複数は、公衆ネットワーク上で直接アクセスできない専用サーバとすることができる。専用サーバは、ファイアウォールにより保護すること、サーバ１２０に接続された仮想専用ネットワーク（ＶＰＮ）の一部とすること、及びサーバ１２０がアクセスすることが許容される専用ネットワークの一部とすることができる。サーバ１２５−１３０の各々を公開サーバとすることもできる。システム１００には、プレースホルダ・コンテンツ１１６、１１７を提供する２つのサーバ１２５−１３０が示されているが、本発明はこの点で制限されるものではなく、どのような数のプレースホルダ・コンテンツ提供サーバ１２５−１３０も用いることができる。さらに、システム１００は、サーバ１２０により出される各要求が単一のサーバ１２５、１３０によって処理され、結果をサービス１３５に提供するように示されるが、他の構成も考えられる。例えば、サーバ１２５が、要求１５４を最初に処理し、さらなる処理のために結果を中間サーバ（図示せず）に伝達し、中間サーバが、結果をサービス１３５に送ることができる。
【００４２】
結果配信サービス１３５は、ＨＴＴＰメッセージ及び他のＲＥＳＴｆｕｌｌメッセージを処理できるサーバ側１０２のソフトウェア・プログラムとすることができる。例えば、結果配信サービス１３５は、サーブレット、ＪＡＶＡ  Ｓｅｒｖｅｒ  Ｐａｇｅ（ＪＳＰ）、Ａｃｔｉｖｅ  Ｓｅｒｖｅｒ  Ｐａｇｅ（ＡＳＰ）、Ｅｎｔｅｒｐｒｉｓｅ  Ｊａｖａ  Ｂｅａｎ（ＥＪＢ）、Ｅｎｔｅｒｐｒｉｓｅ  Ｓｅｒｖｉｃｅ  Ｂｕｓ（ＥＳＢ）等として実装することができる。サービス１３５は、サーバ１２５−１３０が応答１５８及び１６０を伝達することができ、かつ、クライアント１１０が要求１６２、１６６を伝達することができる、ＵＲＩと関連付けることができる。結果配信サービス１３５は、サーバ１２０、サーバ１２５−１３０、又は他のいずれかのサーバ内に常駐することができる。サービス１３５がオリジナルのＨＴＴＰ要求においてアドレス指定されたもの以外のコンポーネントと関連付けられた場合、システム１００は、サーバ１２５−１３０及びクライアント１１０がサービス１３５のＵＲＬを利用できることを確実にするための手段を実装する必要がある。
【００４３】
クライアント１１０は、ＨＴＴＰ要求１５０を送信し、これらの要求への応答をレンダリングできるいずれのコンピュータ装置とすることもできる。例えば、クライアント１１０は、パーソナル・コンピュータ、ノートブック・コンピュータ、モバイル・コンピュータ装置、スマートフォン、携帯用情報端末（ＰＤＡ）、埋込式コンピュータ装置、エレクトロニック・ゲーミング・システム等を含むことができる。クライアント１１０は、ＨＴＴＰ通信を処理するブラウザ１１４を含むことができる。ブラウザ１１４は、ユーザがクライアント１１０と対話するインターフェース１１５に接続することができる。インターフェース１１５は、グラフィカル・ユーザ・インターフェース（ＧＵＩ）、マルチモーダル・インターフェース、音声ユーザ・インターフェース（ＶＵＩ）等とすることができる。インターフェース１１５は、コンテンツ１１８及びプレースホルダ１１６、１１７を含むことができる。
【００４４】
各々のプレースホルダ１１６、１１７は、ウェブ・コンテンツ用のコンテナとすることができる。各々のプレースホルダ１１６、１１７は、動的に生成されたコンテンツで満たすことができる。プレースホルダ１１６、１１７は、ウィジェット、ポートレット、及び他のタイプのコンテンツを含むことができる。一実施形態においては、プレースホルダは、ｒｅｍｏｔｅ  ｒｅｑｕｅｓｔ  ｄｉｓｐａｔｃｈｅｒ（ＲＲＤ）要求からのコンテンツの代わりになる。最初に、プレースホルダ１１６、１１７には、コンテンツがないことがある。プレースホルダ応答１６４、１６８を受け取る度に、関連したプレースホルダ１１６、１１７を完了することができる。プレースホルダ１１６、１１７のコンテンツが利用可能でない場合でさえ、コンテンツ１１８をレンダリングすることができる。一実施形態においては、プレースホルダ１１６、１１７は、ブラウザ・オブジェクト・モデル（ＢＯＭ）又はいずれかのドキュメント・オブジェクト・モデル（ＤＯＭ）に準拠するオブジェクトとすることができる。
【００４５】
１つの実施において、コンテンツのクライアント側１０４の集約は、ユーザにトランスペアレントな方法で行なうことができる。例えば、応答１６４、１６８を受け取るまで、要求１６２、１６６を自動的にサブミットするプラグイン又はエクステンションを有するように、ブラウザ１１４の機能を拡張することができる。一実施形態においては、サーバ１２０は、サービス１３５のアドレスをクライアント１１０及びサーバ１２５−１３０に伝達することができるので、各々のコンピュータ装置は、コンテンツを要求する（例えば、クライアント１１０）及び／又は配信する（例えば、サーバ１２５−１３０）ためのターゲットを判断することができる。別の実施形態においては、公開サーバ１２０は、ユーザ識別アドレスをサーバ１２５−１３０に伝達することができ、それらは、サービス１３５に伝達される。次に、サービス１３５は、アドレスにより参照されるクライアント１１０に結果を配送することができ、及び／又は、サービス１３５はメッセージをクライアント１１０に伝達することができるので、クライアント１１０は、要求１６２−１６６の送り先を承知している。
【００４６】
システム１００の種々のコンポーネントは、ネットワーク（図示せず）を介して通信可能に接続することができる。ネットワークは、搬送波内でコード化されたデジタル・コンテンツを伝達することができるコンポーネントを含むことができる。コンテンツは、アナログ信号又はデジタル信号内に収容させることができ、データ・チャネル又は音声チャネルを通して伝達することができ、パーソナル・エリア・ネットワーク（ＰＡＮ）又はワイド・エリア・ネットワーク（ＷＡＮ）上で伝達することができる。ネットワークは、コンピュータ装置のコンポーネント間、及び、統合デバイス・コンポーネントと周辺機器との間で交換される通信に必要なローカル・コンポーネント及びデータ経路を含むことができる。ネットワークはまた、ルータ、データ線、ハブ、及びインターネット又はイントラネットなどのパケット・ベースのネットワークを協働して形成する中間サーバなどの、ネットワーク機器を含むことができる。ネットワークは、回路ベースの通信コンポーネントと、テレフォニー・スイッチ、モデム、セルラー通信タワーなどの移動体通信コンポーネントとをさらに含むことができる。ネットワークは、有線ベースの及び／又は無線の通信経路を含むことができる。
【００４７】
図２は、ここに開示される本発明の構成の実施形態による、クライアント２１０が、非同期メッセージを通して共通の要求コンテキストにおいて多数のサーバ２１２−２１６からのコンテンツを集約する、プロセスフロー図である。プロセスフロー図２００は、システム１００又はほぼ同等のシステムとの関連で実行することができる。
【００４８】
フロー図２００において、クライアント２１０は、要求２３０をサーバ２１２に伝達することができる。この要求は、サーバ２１２及びサーバ２１４、２１６からコンテンツを要求するものとすることができる。例えば、サーバ２１２は、要求２３０についての静的コンテンツを提供し、サーバ２１４、１２６は、動的コンテンツを提供することができる。サーバ２１２は、各動的コンテンツ・セグメントごとにコンテナ又はプレースホルダを確立することができる。次に、サーバ２１２は、コンテナの１つに関するコンテンツに対する非同期要求２３２を生成し、これをサーバ２１４に伝達することができる。サーバ２１２は、異なるコンテナに関するコンテンツに対する別個の非同期要求２３４を生成し、これをサーバ２１６に伝達することができる。さらに、サーバ２１２は、プレースホルダを含む静的コンテンツ２３６をクライアント２１０に送ることができ、クライアント２１０は、「ブランク」のプレースホルダを含むコンテンツをインターフェース内に即座に提示する２３７ことができる。この時点で、サーバ２１２は、要求２３０に関するプロセス／スレッドを終了することができ、これにより、要求２３０の処理に関連する全てのリソースを解放することができる。
【００４９】
サーバ２１４は、要求２３２を非同期に処理し（２３５）、応答２３８を生成することができ、この応答２３８がサービス２１８に送られる。サーバ２１６は、要求２３４を処理し２３９し、応答２４０を生成することができ、この応答２４０がサービス２１８に伝達される。一旦サーバ２１４、２１６が応答２３８又は２４０をサービス２１８に伝達すると、各サーバ２１４、２１６は、要求２３０に関する全てのプロセス／スレッドを終了し、関連したリソースを解放することができる。
【００５０】
クライアント２１０は、サービス２１８からのコンテンツを非同期に且つ繰り返し要求すること（２４２、２４４）ができ、ここで、要求されたコンテンツは、プレースホルダ又はコンテナを満たすために用いられる。要求を満たすコンテンツがサービス２１８に登録されると、関連した要求すること（２４２、２４４）に応答して、このコンテンツをクライアント２１０に提供すること（２４６、２４８）ができる。プレースホルダ・コンテンツ２４６又は２４８を受け取り次第、クライアント２１０は、コンテンツ２４６又は２４８を即座にレンダリングし、インターフェース内に提示することができる（２４７又は２４９）。
【００５１】
単一の要求コンテキストに応答して、多数のサーバにより実行される１組の非同期動作のクライアント側集約のための技術を示すために、ここでフロー図２００の詳細が用いられることを理解すべきである。特定のプロセスフロー図２００は、全体として開示される本発明の範囲内で自由に解釈されるべきである。つまり、本発明は、示される正確なフローの順序に制限されるものではなく、同等の目的にかなうフロー図２００の派生物は、本発明の範囲内に含まれるものとみなすべきである。例えば、フロー図２００は、サービス２１８からコンテンツを得るための、要求／応答ポーリング手法（２４２−２４８）を示す。依然として本発明の範囲内にある代替的な実施においては、クライアント２１０がサービス２１８に予約をし、コンテンツが利用可能になったときに、サービス２１８は、予約の通り更新されたコンテンツ２４６−２４８を自動的に提供できる予約方法（subscription methodology）を用いることができる。
【００５２】
本発明は、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアの組み合わせにおいて実現することができる。本発明は、１つのコンピュータ・システム内に集中した様式で、又は、異なる要素が幾つかの相互接続したコンピュータ・システムにわたって広がった分散した様式で実現することができる。どのような種類のコンピュータ・システム、又はここに説明される方法を実行するように適合された他の装置も適している。ハードウェアとソフトウェアの典型的な組み合わせは、ロードされ実行されたときに、ここに説明される方法を実行するようにコンピュータ・システムを制御するコンピュータ・プログラムを有する汎用コンピュータ・システムとすることができる。
【００５３】
本発明は、ここに説明される方法の実施を可能にする全ての機能を含み、かつ、コンピュータ・システムにロードされたときにこれらの方法の実行できるコンピュータ・プログラムに埋め込むこともできる。本コンテキストにおける「コンピュータ・プログラム」とは、情報処理能力を有するシステムに、直接的に、或いは、（ａ）別の言語、コード、又は表記への変換、（ｂ）異なる材料形態での再生の一方又は両方の後に、特定の機能を実行させることが意図された一組の命令の、いずれかの言語、コード、又は表記における任意の表現を意味する。
【符号の説明】
【００５４】
１００：システム
１０２：サーバ側
１０４：クライアント側
１１０、２１０：クライアント
１１４：ブラウザ
１１６、１１７：プレースホルダ
１２０：公開サーバ
１２５、１３０、２１２、２１４、２１６：サーバ
１３５：結果配信サービス
２１８：サービス
【図１】
2010537290.tif 000003
【図２】
2010537290.tif 000004
【手続補正書】
【提出日】平成22年6月22日(2010.6.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
要求コンテキストに従ってクライアント要求を処理する方法であって、
クライアントが、要求コンテキストを規定するコンテンツ要求を要求受信サーバに出すステップと、
前記要求受信サーバが、プレースホルダを含む初期のコンテンツを前記クライアントに配信し、非同期要求を複数のプレースホルダ・コンテンツ・サーバに出し、その後スレッド／プロセスを終了し、前記要求コンテキストの処理に必要とされるリソースを解放するステップと、
前記プレースホルダ・コンテンツ・サーバの各々が、前記非同期要求の１つを処理し、プレースホルダ・コンテンツ結果を結果配信サービス・プロバイダに伝達するステップと、
前記結果配信サービス・プロバイダが、前記クライアントに前記プレースホルダ・コンテンツを提供するステップと、
前記クライアントが、前記初期のコンテンツ及び前記プレースホルダ・コンテンツを集約するステップと、
を含む方法。
【請求項２】
前記コンテンツ要求は、前記クライアントのブラウザにより出されたＨＴＴＰ要求であり、前記初期のコンテンツ及び前記プレースホルダ・コンテンツは、マークアップ言語で書かれ、集約されたコンテンツは、前記ブラウザ内でレンダリングされる、請求項１に記載の方法。
【請求項３】
前記要求受信サーバは公開ウェブ・サーバであり、前記プレースホルダ・コンテンツ・サーバの少なくとも１つは、公的にアクセス可能なウェブ・サーバでない専用サーバである、請求項１又は請求項２に記載の方法。
【請求項４】
前記プレースホルダは、それぞれウェブ・コンテンツのコンテナであり、遠隔要求ディスパッチャ（ＲＲＤ）は、前記プレースホルダの１つのために用い得るタイプのコンテナの1つである、請求項１から請求項３のいずれか１項に記載の方法。
【請求項５】
前記結果配信サービス・プロバイダは、ＲＥＳＴｆｕｌ要求を処理するように構成されたサーバ側プログラムである、前記請求項のいずれかに記載の方法。
【請求項６】
前記結果配信サービス・プロバイダが前記要求を満たす対応するプレースホルダ・コンテンツを提供することによって各要求に応答するまで、前記クライアントが、１組の要求を前記結果配信サービス・プロバイダに繰り返し出すステップをさらに含み、前記要求の組は、前記プレースホルダごとのコンテンツ要求を含む、前記請求項のいずれかに記載の方法。
【請求項７】
前記クライアントが前記結果配信サービス・プロバイダから受信したプレースホルダ・コンテンツを含む応答の各々について、前記クライアントが、前記プレースホルダ・コンテンツに特有のインターフェースの一部をリフレッシュし、前記プレースホルダ・コンテンツが前記インターフェース内でレンダリングされるようにするステップをさらに含む、請求項６に記載の方法。
【請求項８】
前記の集約を行うステップが、コンテンツを集約するときに、非同期メッセージ及び非同期集約動作を用いる、前記請求項のいずれかに記載の方法。
【請求項９】
前記ステップは、少なくとも１つのマシンにより実行可能な複数のコード・セクションを有する少なくとも１つのコンピュータ・プログラムに従って、少なくとも１つのマシンにより自動的に実行され、前記少なくとも１つのコンピュータ・プログラムはマシン可読媒体に格納される、前記請求項のいずれかに記載の方法。
【請求項１０】
要求コンテキストに従ってクライアント要求を処理するためのシステムであって、
要求コンテキストを規定するコンテンツ要求を遠隔配置されたコンテンツ・サーバに伝達するように構成されたクライアントを含み、要求結果は前記クライアントのインターフェース内に提示され、前記要求結果は、そのサーバのコンテンツを生成するために、各々が動作を非同期に実行する複数のサーバにより生成されたコンテンツを含み、前記クライアントは、前記複数のサーバからの前記コンテンツを集約する、システム。
【請求項１１】
要求コンテキストに従ってクライアント要求を処理する要求受信サーバであって、
クライアントからの要求コンテキストを規定するコンテンツ要求の受信に応答して、プレースホルダを含む初期のコンテンツを前記クライアントに配信するステップと、前記プレースホルダに対応する非同期要求をプレースホルダ・コンテンツ・サーバに出すステップと、その後スレッド／プロセスを終了し、前記要求コンテキストの処理に必要とされるリソースを解放するステップを含む、サーバ。
【請求項１２】
結果配信サービス・プロバイダであって、
プレースホルダ・コンテンツ・サーバから、1以上のプレースホルダ・コンテンツを受信するステップと、クライアントに前記1以上のプレースホルダ・コンテンツを提供し、1以上のプレースホルダを含む初期のコンテンツにおいて集約させるステップとを含む、サービス・プロバイダ
【請求項１３】
請求項１から請求項９のいずれかに記載の方法の全てのステップを実行させる、コンピュータ・プログラム。
【国際調査報告】
2010537290.tif 000005
2010537290.tif 000006