(57)【要約】  論理的に区切られたクライアント／サーバ・コンピュータ環境においてクライアント・アプリケーションでのポータル情報をプリフェッチし、キャッシングする方法、システム及びコンピュータ・プログラム製品を提供する。ユーザのウェブ・ブラウザで表示されるべき特定のポートレット・ビューをユーザが要求する前に、サーバからポートレット情報をプリフェッチする。ポートレット情報は、ポートレット・ビュー内に表示されるコンテンツ・データと、どのようにコンテンツ・データが表示されるかを記述するメタ・データと、コンテンツ・データ及びメタ・データ両方の組み合わせとを含むことができる。プリフェッチするステップを、論理的に区切られたクライアント／サーバ・コンピュータ環境のクライアント上で実行する。クライアントは、プリフェッチしたポートレットをストアする。プリフェッチしたポートレット情報をストアした後、ポートレット・ビューのリンクをクリックするようなユーザの要求により、この方法は、ストアしたポートレット情報を取り出し、対応するポートレット・ビュー内にポートレット情報を表示する。ユーザの観点から、ポートレット・ビューは、新たなコンテンツ情報、異なる形式で前に表示されたコンテンツ情報、または、新たなコンテンツ情報及び異なる形式で表示された古いコンテンツ情報の組み合わせを表示することができる。
2007536655.tif 000002
【特許請求の範囲】
【請求項１】
論理的に区切られたクライアント／サーバ・コンピュータ環境におけるクライアント・アプリケーションにおいてキャッシング動作を実行する方法であって、
前記論理的に区切られたクライアント／サーバ・コンピュータ環境のクライアント上でサーバからのポートレット情報をプリフェッチするステップと、
前記プリフェッチしたポートレット情報をクライアント・コンピュータ上にストアするステップと、
前記プリフェッチしたポートレット情報をユーザの要求により表示するステップとを含む方法。
【請求項２】
どのポートレット情報がプリフェッチされるかを判別するステップを更に含む、請求項１に記載の方法。
【請求項３】
前記判別するステップが、
ポータル・リンク構造を構成するステップを含み、
前記ポータル・リンク構造が複数のポートレット・リンク・エントリの階層配置を含み、各ポートレット・リンク・エントリが対応するポートレット・ビューを記述するデータを保持し、
対応するポートレット・ビューが現在表示されているエントリとして現在のポートレット・リンク・エントリを追跡するステップと、
対応するポートレット・ビューのうちどのポートレット・ビューをプリフェッチすべきかを判別するため、前記現在のポートレット・リンク・エントリと前記複数のポートレット・リンク・エントリの別のポートレット・リンク・エントリとの間の距離を判別するステップとを更に含む、請求項２に記載の方法。
【請求項４】
前記プリフェッチするステップは、ポートレット情報を前記サーバ上のポータル・アプリケーション・サーバから要求するステップを更に含む、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記表示するステップは前記プリフェッチしたポートレット情報を、ウェブ・ブラウザを介して表示するステップを更に含む、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記ストアするステップは、前記プリフェッチしたポートレット情報をキャッシュにストアするステップを更に含む、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
フレームワーク・コードを前記クライアント・コンピュータにダウンロードするステップを更に含み、前記フレームワーク・コードは、前記クライアント・コンピュータで実行されると、前記プリフェッチするステップ及び、前記ストアするステップを実行するユーティリティ機能を提供する、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
ポートレット情報が１つのＨＴＭＬページよりも少ない、請求項１〜７のいずれか一項に記載の方法。
【請求項９】
前記表示するステップは、プリフェッチしたポートレット情報を、前記ユーザの要求により取り出したポートレット情報と組み合わせるステップを更に含む、請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
論理的に区切られたクライアント／サーバ・コンピュータ環境におけるクライアント・アプリケーションにおいてキャッシング動作を実行するシステムであって、
前記論理的に区切られたクライアント／サーバ・コンピュータ環境のクライアント上でサーバからのポートレット情報をプリフェッチする手段と、
前記プリフェッチしたポートレット情報をクライアント・コンピュータ上にストアする手段と、
前記プリフェッチしたポートレット情報をユーザの要求により表示する手段とを含むシステム。
【請求項１１】
どのポートレット情報がプリフェッチされるかを判別する手段を更に含む、請求項１０に記載のシステム。
【請求項１２】
前記判別する手段が、
ポータル・リンク構造を構成する手段を含み、
前記ポータル・リンク構造が複数のポートレット・リンク・エントリの階層配置を含み、各ポートレット・リンク・エントリが対応するポートレット・ビューを記述するデータを保持し、
対応するポートレット・ビューが現在表示されているエントリとして現在のポートレット・リンク・エントリを追跡する手段と、
対応するポートレット・ビューのうちどのポートレット・ビューをプリフェッチすべきかを判別するため、前記現在のポートレット・リンク・エントリと前記複数のポートレット・リンク・エントリの別のポートレット・リンク・エントリとの間の距離を判別する手段とを更に含む、請求項１１に記載のシステム。
【請求項１３】
前記プリフェッチする手段は、ポートレット情報を前記サーバ上のポータル・アプリケーション・サーバから要求する手段を更に含む、請求項１０〜１２のいずれか一項に記載のシステム。
【請求項１４】
前記表示する手段は、前記プリフェッチしたポートレット情報を、ウェブ・ブラウザを介して表示する手段を更に含む、請求項１０〜１３のいずれか一項に記載のシステム。
【請求項１５】
前記ストアする手段は、前記プリフェッチしたポートレット情報をキャッシュにストアする手段を更に含む、請求項１０〜１４のいずれか一項に記載のシステム。
【請求項１６】
前記プリフェッチする手段及び前記ストアする手段はフレームワーク・コードにより実行され、
前記システムは、
フレームワーク・コードを前記クライアント・コンピュータにダウンロードする手段を更に含み、前記フレームワーク・コードは前記クライアント・コンピュータ上で実行される、請求項１０〜１５のいずれか一項に記載のシステム。
【請求項１７】
ポートレット情報が１つのＨＴＭＬページよりも少ない、請求項１０〜１６のいずれか一項に記載のシステム。
【請求項１８】
前記表示する手段は、プリフェッチしたポートレット情報を、前記ユーザの要求により取り出したポートレット情報と組み合わせる手段を更に含む、請求項１０〜１７のいずれか一項に記載のシステム。
【請求項１９】
論理的に区切られたクライアント／サーバ・コンピュータ環境におけるクライアント・アプリケーションにおいてキャッシング動作を実行するコンピュータ・プログラム製品であって、
コンピュータ可読プログラム・コードが具体化されているコンピュータ可読メディアを含み、
前記コンピュータ可読プログラム・コードは、
前記論理的に区切られたクライアント／サーバ・コンピュータ環境のクライアント上でサーバからのポートレット情報をプリフェッチするように構成されたコンピュータ可読プログラム・コードと、
クライアント・コンピュータ上に前記プリフェッチしたポートレット情報をストアするように構成されたコンピュータ可読プログラム・コードと、
ユーザの要求により、前記プリフェッチしたポートレット情報を表示するように構成されたコンピュータ可読プログラム・コードとを含むコンピュータ・プログラム製品。
【請求項２０】
どのポートレット情報がプリフェッチされるかを判別するように構成されたコンピュータ可読プログラム・コードを更に含む、請求項１９に記載のコンピュータ・プログラム製品。
【請求項２１】
前記どのポートレット情報がプリフェッチされるかを判別するように構成されたコンピュータ可読プログラム・コードが、
ポータル・リンク構造を構成するように構成されたコンピュータ可読プログラム・コードを含み、
前記ポータル・リンク構造が複数のポートレット・リンク・エントリの階層配置を含み、各ポートレット・リンク・エントリが対応するポートレット・ビューを記述するデータを保持し、
対応するポート・ビューが現在表示されているエントリとして現在のポートレット・リンク・エントリを追跡するように構成されたコンピュータ可読プログラム・コードと、
対応するポートレット・ビューのうちどのポートレット・ビューをプリフェッチすべきかを判別するため、前記現在のポートレット・リンク・エントリと前記複数のポートレット・リンク・エントリで別のポートレット・リンク・エントリとの間の距離を判別するように構成されたコンピュータ可読プログラム・コードとを更に含む、請求項２０に記載のコンピュータ・プログラム製品。
【請求項２２】
前記ポートレット情報をプリフェッチするように構成されたコンピュータ可読プログラム・コードは、ポートレット情報を前記サーバ上のポータル・アプリケーション・サーバから要求するように構成されたコンピュータ可読プログラム・コードを更に含む、請求項１９〜２１のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項２３】
前記プリフェッチしたポートレット情報を表示するように構成されたコンピュータ可読プログラム・コードは、前記プリフェッチしたポートレット情報を、ウェブ・ブラウザを介して表示することを更に含む、請求項１９〜２２のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項２４】
前記プリフェッチしたポートレット情報をストアするように構成されたコンピュータ可読プログラム・コードは、前記プリフェッチしたポートレット情報をキャッシュにストアするように構成されたコンピュータ可読プログラム・コードを更に含む、請求項１９〜２３のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項２５】
前記ポートレット情報をプリフェッチするように構成されたコンピュータ可読プログラム・コード及び前記プリフェッチしたポートレット情報をストアするように構成されたコンピュータ可読プログラム・コードはフレームワーク・コードに組み合わされ、
前記コンピュータ・プログラム製品は、
フレームワーク・コードを前記クライアント・コンピュータにダウンロードするように構成されたコンピュータ可読プログラム・コードを更に含む、請求項１９〜２４のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項２６】
ポートレット情報が１つのＨＴＭＬページよりも少ない、請求項１９〜２５のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項２７】
前記プリフェッチしたポートレット情報を表示するように構成されたコンピュータ可読プログラム・コードは、プリフェッチしたポートレット情報を、前記ユーザの要求により取り出したポートレット情報と組み合わせるように構成されたコンピュータ可読プログラム・コードを更に含む、請求項１９〜２６のいずれか一項に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、情報を処理するための改良された方法、システム及びコンピュータ・プログラム製品に関し、特に、ネットワーク・コンピュータ環境においてポートレットをプリフェッチし、キャッシングする有利な方法、システム及びコンピュータ・プログラム製品に関する。
【背景技術】
【０００２】
「ワールド・ワイド・ウェブ」（ＷＷＷ）の人気が増加するにつれて、ウェブ・ブラウザまたはブラウザの使用が一般的になってきている。例えば、ネットスケープ社のＮｅｔｓｃａｐｅ  Ｎａｖｉｇａｔｏｒ（登録商標）として知られているウェブ・ブラウザは、ウェブを介してアプリケーションを動作させ、データを表示するのに便利な方法を提供することができる。ウェブを介して使用可能なアプリケーションの幾つかは、これらアプリケーションをＣまたはＪａｖａ（登録商標）のようなネイティブ言語で書くことができるので、ユーザと高水準の相互作用を提供することができる。特に、これらタイプのネイティブ言語で書かれるアプリケーションは、集中的なユーザ相互作用を必要とするように、特定の態様で書くことができる。ユーザとアプリケーションとの間の相互作用のレベルが増大するにつれて、ウェブ・ブラウザとアプリケーションとの間の通信も増大することがある。通信のこの増大は使用可能なネットワーク帯域幅を減少させ、結果的に、ユーザにより感知されるアプリケーションの応答時間に遅延を生じさせる。例えば、アプリケーションにより管理されるデータをユーザが要求するたびに、要求がウェブを介してアプリケーションに送信され、要求されたデータをアプリケーションが取り出し、要求されたデータでアプリケーションが応答するまで、ユーザは待機する必要がある。
【０００３】
汎用アプリケーションに関して上記に概説した問題に加えて、「エマージング・ウェブ・デスクトップ」と一般に称される新たなタイプの環境は、上述した問題と類似する更に大きな問題を生じさせることがある。特に、エマージング・ウェブ・デスクトップは、一般にポータルと称するものへのアクセスをユーザに提供することができる。ポータルは、ウェブ・ブラウザにより表示される単一画面を介して、ユーザを複数のアプリケーションにアクセスさせることができる。例えば、幾つかのポータルは、天気、スポーツ、株式情報などのような異なるデータをユーザ側の単一画面に表示できるアプリケーションにユーザをアクセスせせることができる。異なるタイプのデータの各々はポートレット（ｐｏｒｔｌｅｔ）により典型的に制御される。ポートレットは、ポートレット仕様で指定されたインターフェース及び動作に従い、ポータル・アプリケーション・サーバで実行するコンピュータ・コードである。ポートレット仕様の例として、ＩＢＭ（登録商標）社のポートレットＡＰＩと、Ｊａｖａ（登録商標）コミュニティ・プロセスにより定義されたＪａｖａポートレット仕様のＪａｖａ標準化要求とが挙げられる。
【０００４】
アドミニストレーション、カスタマイズ及びスイッチングのようなポータルの管理に必要とされる処理の大部分は、ブラウザとアプリケーションとの間で使用可能な帯域幅に対して更に大きな要求を出すことがある。使用可能な帯域幅に対してこのように増大する要求は、ユーザの観点からはアプリケーションの応答時間の減少へ変化するおそれもある。
【０００５】
他の欠点のうち、ウェブ・ブラウザを含む従来型のアプローチは、現在キャッシュされている情報の細分性の理由で、最適化の機会を制限させる。例えば、１つの従来型のアプローチは、ハイパーテキスト・マークアップ言語（ＨＴＭＬ）ページの全体を参照するユニフォーム・リソース・ロケータ（ＵＲＬ）のみをキャッシュすることができるか、または、このＨＴＭＬページの全体をクライアント上にキャッシュすることができる。但し、後者の場合、このＨＴＭＬページの全体がブラウザの全表示領域を消費することになる。他の従来型のアプローチは、クライアントとサーバとの間の応答時間の遅延に対処しない、サーバ側でのキャッシングを含む。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ウェブを介してデータにアクセスするためにウェブ・ブラウザを用いる際に生じる性能問題の幾つかに対処するため、ＸＦｏｒｍと一般に称される技術を用いることが知られている。特に、データがどのように表示されるかは別として、ＸＦｏｒｍ技術は、ウェブ・ブラウザに表示されるようにデータを処理することができる。しかし、ＸＦｏｒｍ技術は、ウェブを介してアプリケーションまたはデータにアクセスするためにウェブ・ブラウザを用いる際に生じることがある上述の問題の幾つかに対処していない。
【課題を解決するための手段】
【０００７】
幾つかの側面のうちで、帯域幅及び応答時間の要件に対して出される要求が増大するため、本発明は、既存のウェブ・アプリケーションの性能を増大させる必要性があることを認識している。また本発明は、ユーザにより消費されるポートレット情報を予測し、このポートレット情報をユーザが要求する前に取り出す方法、システム及びコンピュータ・プログラム製品が必要とされていることも認識している。更に、本発明は、ユーザが要求する前にクライアント上で実行し、ポートレット情報を取り出し、ポートレット情報をクライアント・コンピュータ内にキャッシュするシステム、方法及びコンピュータ・プログラム製品を提供することにより、従来型のポータル・サーバ機能をオフロードする価値を認識している。
【０００８】
本発明の一側面によれば、論理的に区切られたクライアント／サーバ・コンピュータ環境におけるクライアント・アプリケーションにおいてポータル情報をプリフェッチし、キャッシュする方法を提供する。この方法は、ユーザのウェブ・ブラウザで表示される特定のポートレット・ビューをユーザが要求する前に、サーバからポートレット情報をプリフェッチする。ポートレット情報は、ポートレット・ビューに表示されるべきコンテンツ・データ、及びこのコンテンツ・データがどのように表示されるかを記述するメタ・データの一方、または両方を含む。プリフェッチするステップは、論理的に区切られたクライアント／サーバ・コンピュータ環境のクライアント側で実行される。クライアント側は、プリフェッチしたポートレットをストアする。フェッチした情報をユーザが要求した時点で取り出すよりむしろ、この方法は、プリフェッチしたポートレット情報をストアした後、ポートレット・ビュー内のリンクをクリックするようなユーザの要求により、ストアしたポートレット情報を取り出し、対応するポートレット・ビューにポートレット情報を表示する。このようなプリフェッチは、サーバから取り出されるべき新たな情報をユーザが積極的に要求していないときに行われ、従って、ユーザの観点からアプリケーションの応答時間を増大させる。更に、ユーザの観点から、ポートレット・ビューは、新たなコンテンツ情報及び異なる形式で前に表示されたコンテンツ情報の一方または両方の組み合わせを表示することができる。
【０００９】
本発明のより完全な理解は、本発明の更なる特徴及び利点と同様に以下の詳細な説明及び添付図面から明らかになる。
【発明を実施するための最良の形態】
【００１０】
次に、本発明の好適な実施形態の幾つかが示されている添付図面を参照して本発明を更に詳細に説明する。しかし、本発明を様々な形式で具体化することができ、本発明が本明細書で述べる実施形態に限定されるものと解釈されるべきではない。むしろ、これらの実施形態は、本開示が徹底して完全となるように、かつ、本発明の範囲を充分に当業者に伝えるように提供されている。
【００１１】
当業者は明らかなように、本発明は、方法、システムまたはコンピュータ・プログラム製品として具体化することができる。従って、本発明は、ハードウェア実施形態、ソフトウェア実施形態、またはソフトウェア及びハードウェア態様を組み合わせた実施形態の形をとることができる。更に、本発明は、メディア内に具体化されたコンピュータ使用可能プログラム・コードを有するコンピュータ使用可能ストレージ・メディア上のコンピュータ・プログラム製品の形をとることができる。ハード・ディスク、ＣＤＲＯＭ、光ディスク・ストレージ装置または磁気ストレージ装置を含む適切なコンピュータ可読メディアのいずれをも使用することができる。
【００１２】
本発明による操作を行うためのコンピュータ・プログラム・コードまたは「コード」を、ＪＡＶＡ（登録商標）、Ｓｍａｌｌｔａｌｋ、ＪＡＶＡＳｃｒｉｐｔ（登録商標）、Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標）、ＴＳＱＬ、Ｐｅｒｌのようなオブジェクト指向プログラミング言語またはその他の様々なプログラミング言語で書くことができる。本発明のソフトウェア実施形態は、特定のプログラム言語を用いる実装に依存しない。かかるコードの一部分は、中間サーバにより使用される１つ以上のシステムで完全に実行することができる。
【００１３】
かかるコードは、１つ以上のサーバ上で完全に実行することができ、また、一部を１つのサーバ上で実行し且つ一部をクライアント装置内の１つのクライアント上で実行することができ、更には、通信ネットワーク内の中間ポイントにあるプロキシ・サーバとして実行することができる。前者のシナリオに関して、図１は、本発明を適切に用いることができる例示的なシステム１００を示す図である。システム１００は、ワークステーション１１０Ａ、ラップトップ・コンピュータ１１０Ｂ、携帯電話１１０Ｃ、ハンドヘルド・コンピュータ１１０Ｄまたは、コンピュータ・プログラム・コードを実行できるその他のコンピュータに基づく装置のようなクライアント装置を含む。クライアント装置は、ＬＡＮ、ＷＡＮまたはその他のイントラネットのようなネットワーク１３０を介して、サーバ１２０に接続することができる。または、インターネット・サービス・プロバイダ（ＩＳＰ）を介してインターネットにより接続を行うことができる。当然のことながら、本発明は、ＴＣＰ／ＩＰ固有またはインターネット固有ではない。様々なタイプのコンピュータ・ネットワークを介して様々なトランスポート及びデータ・リンク・プロトコルを用いて本発明を具体化することができる。
【００１４】
本発明による実施形態は、以後クライアント／サーバ環境と称することもある論理的に区切られたクライアント／サーバ・コンピュータ環境で動作することができる。クライアント／サーバ環境は、クライアント・プロセス（クライアント）、サーバ・プロセス（サーバ）、及び、サーバからクライアントが要求するサービスを含む計算アーキテクチャである。クライアント及びサーバ・プロセスは異なる機械または同一の機械上で動作することができるが、クライアント／サーバ環境は、一般にこれらのプロセス間の違いを維持する。従って、クライアント／サーバ環境のクライアント側及びサーバ側は、図１に示すように論理的に区切られたと称される。通常、クライアント及びサーバ・プロセスは別個の装置上で動作するとき、それぞれのプロセスのニーズに対して各装置をカスタマイズすることができる。例えば、サーバ・プロセスは、大量のメモリ及びディスク・スペースを有するシステム上で実行することができるのに対して、クライアント・プロセスは、ハイ・エンド・ビデオ・カード及び大型画面ディスプレイにより供給されるグラフィカル・ユーザ・インターフェースを有するシステム上で実行することが多い。
【００１５】
クライアントは、ウェブ・ページまたはポートレット・ビューのような情報をサーバから要求する、ウェブ・ブラウザのようなプログラムを含むことができる。クライアントの例として、Ｎｅｔｓｃａｐｅ  Ｎａｖｉｇａｔｏｒ（登録商標）及びＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）のようなブラウザが挙げられる。ブラウザは、ウェブ・ページ、ウェブ・ポータル、ポートレット、アプリケーション及び、ウェブ・サーバによりサービスされるその他のリソースを取り出し、表示するため、典型的にグラフィカル・ユーザ・インターフェースを備える。
【００１６】
サーバは、クライアントからの要求に応答するプログラムを含むことができる。サーバの幾つかの例として、Ｌｏｔｕｓ  Ｄｏｍｉｎｏ（登録商標）サーバのファミリー、Ｗｅｂｓｐｈｅｒｅ（登録商標）サーバ、アパッチ（Ａｐａｃｈｅ）サーバ及びその他の適切なサーバが挙げられる。
【００１７】
クライアント及びサーバは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）のような標準の通信モードを用いて通信することができる。ＨＴＴＰ要求／応答通信モデルによれば、ＨＴＴＰ要求はクライアントからサーバへ送信され、ＨＴＴＰ応答は、ＨＴＴＰ要求に応答してサーバからクライアントへ送信される。動作中、サーバは、クライアントが接続をオープンし、ウェブ・ページ、ポートレットのような情報またはその他の類似の情報を要求するのを待機する。それに応答して、サーバは、要求された情報のコピーをクライアントに送信し、クライアントへの接続をクローズし、次の接続を待機する。当然のことながら、サーバは２つ以上のクライアントからの要求に応答することができる。
【００１８】
以下、本発明の実施形態による方法、システム及びコンピュータ・プログラム製品を示すブロック図及びフローチャートを参照して本発明を説明する。当然のことながら、ブロック図及びフローチャートの各ブロック、並びに、ブロック図及びフローチャートのブロックの組み合わせを、コンピュータ・プログラム・コードにより実装することができる。かかるコンピュータ・プログラム・コードを汎用コンピュータ、専用コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサに提供して当該プロセッサ上で実行することにより、ブロック図及びフローチャートの一方または両方で指定された機能を実装する手段を作成することができる。
【００１９】
コンピュータ・プログラム・コードまたは命令をコンピュータ可読メモリ内にストアすると、コンピュータまたはその他のプログラマブル・データ処理装置に対し特定の態様で機能するように指図することができ、これによって、コンピュータ可読メモリ内にストアされた命令が、ブロック図またはフローチャートで指定された機能を実装する命令手段を含む製品を生成する。
【００２０】
かかるコンピュータ・プログラム・コードをコンピュータまたはその他のプログラマブル・データ処理装置にロードすると、当該コンピュータまたはその他のプログラマブル・データ処理装置上で一連の動作ステップが実行され、その結果、当該コンピュータまたはその他のプログラマブル装置上で実行される命令がブロック図及びフローチャートの一方または両方で指定された機能を実装するステップを提供するようにコンピュータに実装されたプロセスを生成することになる。
【００２１】
本明細書で用いるように、「ウェブ・サイト」なる用語は、ホーム・ページと称される開始ファイルを含む関連したファイルの集合を含むことができる。ホーム・ページから、訪問者は、ウェブ・サイトのその他のファイル及びアプリケーションにアクセスすることができる。大規模なウェブ・サイトは、異なっても異ならなくてもよく、地理的に分散しても分散しなくてもよい、多数のサーバを使用することができる。例えば、インターナショナル・ビジネス・マシーンズ社のウェブ・サイト（ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ）は、複数のウェブ・サーバを介して世界中の場所に分散された何千ものウェブ・ページ及びファイルより成る。
【００２２】
本明細書では、ウェブ・ページ、ウェブ・サーバなどを参照して本発明を説明するが、当然のことながら、情報を有するコンピュータ表示可能文書のいずれでも本発明を実施することができる。
【００２３】
当業者にとって既知のように、ウェブ・ページは、典型的にテキストを含み、グラフィックス、音、アニメーション及びビデオ・データを参照できるＨＴＭＬのような標準のページ記述言語を介して、従来通りにフォーマットされている。ＨＴＭＬは、基本文書フォーマット設定を行うことにより、ウェブ・コンテンツ・プロバイダが、他のサーバに対して典型的に強調表示テキストとして示されるアンカーまたはハイパーテキスト・リンクを指定することを可能にする。ユーザが特定のハイパーテキスト・リンクを選択または起動すると、ユーザのクライアント装置上で実行しているブラウザは、ハイパーテキスト・リンクと関連するユニフォーム・リソース・ロケータ（ＵＲＬ）と称するアドレスを読み取り、解釈し、このアドレスのウェブ・サーバとブラウザを接続し、ハイパーテキスト・リンクで識別されたファイルに対してＨＴＴＰ要求のような要求を行う。次に、ウェブ・サーバは、要求されたファイルをクライアントに送信し、このクライアントはウェブ・ページを表示のために変換処理し、レンダリングする。本明細書で用いられる用語「ユーザ」をソフトウェア・プロセスまたは人とすることができる。
【００２４】
ウェブ・ブラウザは、ウェブ・ポータルまたはポータルを表示するために用いることができる。当業者には明らかなように、ウェブ・ポータルは、クライアント及びサーバに関連して上述した同一の通信プロトコルに従ってウェブ・ポータルは動作することができる。この場合、クライアントは、ポータル・ページまたはポータル・ビューを表示するウェブ・ブラウザを含み、サーバは、要求された情報をウェブ・ブラウザに供給するポータル・アプリケーション・サーバと称されることもある。
【００２５】
ポータルは、情報の集合体と称されることもある複数のソースからの情報の単一表示またはビューを表示させることができる。ポータルは、カレンダ及び予定表、ディスカッション・グループ、発表及びレポート、ニュース、株式相場、検索、電子メール及びアドレス帳、天気、地図、ショッピングなどのような情報を含むことが多く、これらのすべてを異なるソースまたはアプリケーションによりポータルに供給することができる。
【００２６】
ポータルにより供給される情報の大部分をユーザによりカスタマイズすることができる。例えば、Ｍｙ  Ｌｙｃｏｓ（登録商標）のような幾つかのポータルをカスタマイズして、ユーザの領域に天気予報を表示し、または、ユーザのお気に入りのチームのスポーツ・スコアを表示することができる。更に、カスタマイズはポータル自体のルック・アンド・フィールを含むことができる。例えば、特定の画面テーマを用いて表示するのに幾つかのポータルをカスタマイズすることができる。
【００２７】
ユーザに興味を起こさせるコンテンツを表示し、カスタマイズするのに、または、正確な人口統計データを見込み広告主に供給し、広告内容を売上予測と一致させるように見込み広告主を手助けするのに、ポータルはプロファイルを用いることもできる。従って、ポータル及び、ニュース・サービスのような近年その他のウェブ・プロバイダは、ユーザがプロファイル・フォームを完成することを要求することが多い。プロファイル・フォームは、例えば、ユーザ名、性別、年齢、住所、所得階層、職業、レクリエーション活動、趣味などを要求することができる。例えば、ユーザについてもっと知り、ユーザを印刷、電子メール、ダイレクト・メール広告などのターゲットにするため、連絡先情報の大規模データベースから母集団の小セグメントの連絡先情報を選択する技法のようなデータ・マイニングと一緒に、ユーザ・プロファイルに供給されたデータを用いることができる。ユーザはポータル・ページをカスタマイズし、ユーザが興味を持っている情報または取引を表示することができる。ユーザの観点から、ポートレットは、ユーザが加入できるコンテンツ・チャネルまたはアプリケーションである。
【００２８】
ポートレットは、要求を処理しダイナミック・コンテンツを生成するサーバ上で実行される、Ｊａｖａ（登録商標）に基づくウェブ・コンポーネントである。ポータルは、プレゼンテーション層を情報システムに供給するプラグ可能ユーザ・インターフェース・コンポーネントとして、ポートレットを用いる。ポートレット・ビューは、ポータルのユーザがポータル・ページ内で見る可視アクティブ・コンポーネントに対応する。デスクトップ・コンピュータのウィンドウに類似して、関連情報が表示されるポータル・ビュー内のクライアント画面の一部分が各ポートレット・ビューに割り当てられる。ポートレットは、ユーザにより見られるポータル・ページに埋め込まれるコンテンツを生成する。ポートレット自体は、各ビューがポートレットの特定状態を表す、多くのポートレット・ビューを有することができる。ポートレットは、ユーザとの取引につながるように、典型的にサーバで管理されるデータと相互作用することができる。各ポートレット・ビューは、取引の異なる状態に対応することができる。例えば、ポートレットを介して、ユーザは株式を売却することができる。１つのポートレット・ビューは、ユーザがポジションを有する、異なる株式を表示するユーザの証券取引口座状況を表示することができる。ユーザがポートフォリオ内の株式の１つをクリックすると、取引を制御するポートレットは、第１ポートレット・ビューを第２ポートレット・ビューに移行することができる。第２ポートレット・ビューは、売却する株式数と、ユーザにより許容できる最小売値とをユーザが入力するビューを表示する。サン・マイクロシステムズのＪａｖａ（登録商標）  Ｓｅｒｖｅｒ  Ｐａｇｅｓ技法のような、コンテンツ生成をユーザ・インターフェースから分離する技法のいずれによってもポートレット・ビューを開発することができる。
【００２９】
図２は、本発明に従って動作できるウェブ・ブラウザにより表示された例示的なポータル・ビュー２００を示す図である。図２に示すように、ポータル・ビュー２００は、ポートレット・ビューと称される異なる情報の複数のビューを含む。特に、ポータル・ビュー２００は、株式、天気及びニュースにそれぞれ関する情報の表示に関連する３つのポートレット・ビュー２０５、２１０及び２１５を含む。図２によれば、ポートレット・ビュー２０５は、ユーザが興味を持っている株式情報を表示する。株式、債券、株式市場などの値段のような情報を表示するようにポートレット・ビュー２０５をカスタマイズすることができる。ポートレット・ビュー２１０は、ユーザが興味を持っている特定の地理的な位置に関連する天気情報を表示し、ポートレット・ビュー２１０をカスタマイズすることもできる。ポートレット・ビュー２１５は、ユーザが興味を持っているニュース情報を表示し、ポートレット・ビュー２１５をカスタマイズすることもできる。動作中、ユーザは、ポータル・ビュー２００に示す情報を生成するポートレットのいずれかに対して更新情報の必要性を生じさせることができる。例えば、ユーザは、ポートレット・ビュー２０５に対応するポートレットを介して、更新された株価を要求し、ポートレット・ビュー２１０に対応するポートレットを介して、更新された天気を要求し、ポートレット・ビュー２１５に対応するポートレットにおいて最新ニュースの特定項目に関連する情報を要求することができる。更に、ユーザは、ポートレットを介して、ポートレット・ビュー２０５、２１０及び２１５を表示する異なるフォーマットを要求することができる。いずれにしても、更新情報の要求は、ポートレット・ビュー２０５、２１０及び２１５の少なくとも１つに表示されている情報の一部を変更する必要性を生じさせることができる。
【００３０】
追加のアプリケーション・コードの制御下、ウェブ・ブラウザのようなクライアント・アプリケーションによりその後表示するため、ポートレットに関連するマークアップ及びデータのような情報を集約することができる。特に、論理的に区切られたクライアント／サーバ・コンピュータ環境では、ウェブ・ブラウザにより表示するためにクライアント側に保存されている情報を、この環境のサーバ側に位置するポータル・アプリケーション・サーバからウェブ・ブラウザにより要求された情報で集合化することができる。従って、表示されるべき情報の集合体をサーバ側よりもむしろクライアント側に供給することができ、これにより、ポータル・アプリケーション・サーバへのロードを削減し、ウェブ・ブラウザに割り当てられた必要な帯域幅を削減する。幾つかの実施形態では、複数のポートレットをサポートするポータルにアクセスするのにウェブ・ブラウザを用いることができ、所望の情報を表示するように各ポートレットをユーザによりカスタマイズすることができる。この情報の集合化中、ウェブ・ブラウザは、要求された情報と関連するポータルの更新される表示に必要とされる情報のみを要求し、更新される表示に必要とされない要求中の情報を回避することができる。必要とされない要求中の情報を回避することにより、ポータル・アプリケーション・サーバへのロードが更に削減される。クライアント・アプリケーションにより表示するために情報を集合化する方法及び装置は、２００３年６月１９日出願の「ＭＥＴＨＯＤＳ，  ＳＹＳＴＥＭＳ，  ＡＮＤ  ＣＯＭＰＵＴＥＲ  ＰＲＯＧＲＡＭ  ＰＲＯＤＵＣＴＳ  ＦＯＲ  ＰＯＲＴＬＥＴ  ＡＧＧＲＥＧＡＴＩＯＮ  ＢＹ  ＣＬＩＥＮＴ  ＡＰＰＬＩＣＡＴＩＯＮＳ  ＯＮ  Ａ  ＣＬＩＥＮＴ  ＳＩＤＥ  ＯＦ  Ａ  ＣＬＩＥＮＴ／ＳＥＲＶＥＲ  ＥＮＶＩＲＯＮＭＥＮＴ」と題された米国特許出願第１０／４６４９１０号で更に詳しく述べられている。本明細書では、この米国特許出願明細書を、全体として援用する。
【００３１】
本発明による実施形態は、ウェブ・ブラウザのようなクライアント・アプリケーションでのポートレット情報をプリフェッチし、その後、キャッシュングすることを可能にする技術を提供する。特に、本発明は、ポートレット・ビュー間の階層関係を定義するポータル・リンク構造を提供する。ポータル・リンク構造は、定義範囲内の各ポートレット・ビューへの参照を含む。参照をＵＲＬ、別のポートレットへのＵＲＬ、動的リンク、または、ポートレット内からその後にアクセス可能なポートレット情報にアクセスする方法を示すその他の適切な参照とすることができる。ポータル・リンク構造をポータル・アプリケーション・サーバにより最初に作成し、その後、クライアントにより管理することができる。本発明による幾つかの実施形態では、ポータル・リンク構造をクライアントで最初に作成し、管理することができる。クライアントは、どのポートレット参照が取り出され、どのポートレット参照がポータル・ビューとして現在レンダリングされているかを判別することによりポータル・リンク構造を更新する。
【００３２】
図３は、ポートレット・ビュー３０５、３１０及び３１５内に埋め込まれた参照（ｒｅｆ）を示す階層図３００である。ポートレット・ビュー３０５、３１０及び３１５は、例えば、図２におけるポートレット・ビュー２０５、２１０及び２１５にそれぞれレンダリングされたポートレット情報に対応することができる。一般に、リンクとも称される参照は、実行の際、特定のポートレット・ビューにアクセスする。参照７及び参照８は、ポートレット・ビュー３０５内に含まれている。例えば、参照７は、アメリクエスト・モーゲージ社（ＡＭＥＲＩＱＵＥＳＴ  ＭＯＲＴＧＡＧＥ  ＣＯＭＰＡＮＹ）に関する更なる情報を、ネットワーク１３０内で接続されているサーバで検出できるサーバ・アドレスに対応することができる。このような情報へのユーザ・アクセスは、ユーザが強調表示リンク２２０のような強調表示リンクをクリックすることにより典型的に表示される。参照８は、その後に株価２２５のような情報を取り出すため、要求と共に送信されるパラメータを使用する動的リンクに対応することができる。ポートレット・ビュー３１０は参照９及び１０を含む。ポートレット・ビュー３１５は参照１１及び１２を含む。ポートレット・ビュー内の参照を、参照７及び８について説明したようにユーザに対して表示可能にしてもよく、または、ユーザに対して表示可能にしないてもよい。ポートレットの情報内で参照される各参照を繰り返し判別し、次に、各参照内に含まれるポートレット情報から次の参照を判別することにより参照のツリーが定義される。
【００３３】
以下で更に詳細に説明するように、本発明は、参照のツリーを構成する技法を提供する。参照のツリーのサイズ及びレベル数は、ＪａｖａＳｃｒｉｐｔ（登録商標）で書かれ、サーバ上にストアされるが、クライアント上で実行されるアプリケーション・コードのようなアプリケーション・コードにより構成可能である。参照ツリーを構成するフレームワークのアプリケーション・コード及びその使用を、図６の説明に関連して更に詳細に説明する。
【００３４】
図４は、本発明による例示的なポータル・リンク構造３３０を示すブロック図である。ポータル・リンク構造３３０は、図３に示す参照のツリーに基づくポートレット・リンク・エントリＰ１  ３３５のようなポートレット・リンク・エントリの階層配置である。アプリケーション・コードはポートレット・リンク・エントリの数と、ポータル・リンク構造が完了する範囲とを判別する。典型的に、ポートレット・リンク・エントリと、ポートレットにより生成された各ポートレット・ビューとの間には、１対１の関係がある。
【００３５】
ポートレット・リンク・エントリＰ１  ３３５はポートレット・ビュー３０５に対応する。ポートレット・ビュー３０５が、図３に示すように参照７を参照するので、ポートレット・リンク・エントリＰ１  ３３５は、参照７により参照付けられたポートレット・ビューに対応するポートレット・リンク・エントリＰ７  ３３７にリンクされる。従って、ポートレット・リンク・エントリ３３５とポートレット・リンク・エントリ３３７との間の参照関係は図４において、ポートレット・リンク・エントリ３３７がポートレット・リンク・エントリ３３５から字下げされて示されている。
【００３６】
図４に示すように階層配置内にポートレット・リンク・エントリを配置し、ポートレット・リンク・エントリに対応するどのポータル・ビューがディスプレイにレンダリングされているかを追跡することにより、必要とされそうなポートレット情報を、現在レンダリングされているポートレット・エントリと、レンダリングされていないポートレット・エントリとの間の距離により判別することができる。例えば、Ｐ１とＰ７との間の距離は１であり、Ｐ１とポートレット・リンク・エントリＰ１３すなわちＰ７の子との間の距離は２である。Ｐ１が現在表示されていれば、ユーザが、参照１３へのアクセスを得る前に典型的に参照７をクリックするので、１の距離のみを有するＰ７はＰ１３よりもプリフェッチされる可能性が高い。この階層配置は、どのポートレット情報がユーザにより要求されそうかを予測する技法を提供する。
【００３７】
図５は、ポータル・リンク構造３３０内の例示的なポートレット・リンク・エントリ３５０を示すブロック図である。説明の便宜上、ポートレット・リンク・エントリ３５０を、ポータル・ビュー２００内にレンダリングされるポートレット・ビュー３０５に対応するポートレット・リンク・エントリとして説明する。ポートレット・リンク・エントリ３５０は、種々のタイプを有するフィールド３５２、３５４，３５６，３５８，３６０，３６２及び３６４を含む。図面を簡潔にするため、フィールド・タイプは図示されていない。各フィールドを様々なフィールド・タイプで実装することができることを当業者は認識すべきである。キャッシュ可能フィールド３５２、ポータル・アプリケーション・サーバ・フィールド３５４及びその他のポートレット参照フィールド３５６は、現在のポートレット・リンク・エントリのコンテンツに関係する情報を一般に含む。例えば、キャッシュ可能フィールド３５２は、ポータル・リンク・エントリと関連するコンテンツがキャッシュ可能であるかどうかの指示を含む。この判別を行うのに用いられる幾つかの要素は、対応するポートレット・ビューが動的な結果を表示するか否かを含む。取引を実行するのにデータと相互作用するようポートレット・ビューがユーザにプロンプトを出すときに、動的な結果が発生することがある。リンクにより参照が付けられ、動的な結果を表示するポートレット・ビューは典型的にキャッシュ可能とならない。例えば、ポートレットにより生成されたポートレット・ビューがショッピング・アプリケーションであれば、本発明は、取引中に気持ちを変えるユーザを混乱させないようにするため、ポートレット・ビューを介して購入された製品を表示するポートレット・ビューをキャッシュしない。
【００３８】
ポータル・アプリケーション・サーバ・フィールド３５４は、ポータル・リンク・エントリに対応するポートレット・ビューを生成するポートレットを供給するポータル・アプリケーション・サーバの指示を含む。その他のポートレット参照フィールド３５６は、同一のポータル・アプリケーション・サーバにより供給されるポートレット参照のリストを含み、このポートレット・リンク・エントリに対応するポートレット・ビューを介してアクセス可能である。文書オブジェクト・モデル（ＤＯＭ）ツリー・ノードの識別子（ＩＤ）フィールド３５８は、このポートレット・リンク・エントリに対応するポートレット・ビューを表示することにより置換されるＤＯＭ内のロケーションを示す。ＤＯＭは、スクリプトが文書のコンテンツ、構造及びスタイルにアクセスし更新できるＷ３Ｃ文書オブジェクト・モデル規格により指定された既知のプラットフォーム及び言語自然インターフェースである。
【００３９】
Ｊａｖａｓｃｒｉｐｔ（登録商標）のようなＤＯＭサポート・プログラミング言語を用いてポートレット・ビュー内の情報を操作することができる。例えば、クライアントにより表示されるため、要求された情報をＨＴＭＬページに直接に挿入するのにＤＯＭ参照を用いることができる。ＤＯＭサポート・プログラミング言語の別の態様は、文書のいずれの構成要素にもアクセスする能力、文書に含まれるコンテンツ情報を更新する能力、及び、情報を別々に操作する能力である。例えば、Ｗ３Ｃ文書オブジェクト・モデル規格に関する更なる情報については、ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＤＯＭ／で入手可能なＷ３Ｃアーキテクチャ・ドメインを参照されたい。
【００４０】
コンテンツのサーバ識別子（ＩＤ）フィールド３６０は、サーバの範囲内のコンテンツの固有ＩＤを含む。このＩＤは、関連するコンテンツをポータル・アプリケーション・サーバから取り出す能力を備える。キャッシュされたコンテンツへのリンク・フィールド３６２は、ポータル・アプリケーション・サーバよりはむしろローカル・キャッシュから特定コンテンツを取り出すため、ローカル・リンクまたはキャッシュ内の固有の識別子を含む。典型的に、このフィールドは、コンテンツがプリフェッチされ、クライアントのローカル・キャッシュにストアされるまで割り当てられない。その他のポートレット・リンク・エントリへのリンク・フィールド３６４は、現在のリンク・エントリによりアクセス可能なその他のポートレット・リンク・エントリへのリンクのリストを含む。言い換えれば、このリンク・フィールド３６４は、図３で説明したようにその他のポートレット・ビューを参照付けるポートレット・ビュー間のナビゲーション関係を平行させる。
【００４１】
図６は、本発明によるポータル・リンク構造を使用するクライアント／サーバの相互作用４００を示すブロック図である。図６によれば、クライアント側のポータル４００は、論理的に区切られたクライアント／サーバ・コンピュータ環境内のサーバ側にあるポータル・アプリケーション・サーバ４２０上で動作する。ポータル・ビュー４０１をウェブ・ブラウザのようなクライアントにより表示することができる。ポータル・ビュー４０１は、その内部に表示することができるポートレット・ビュー４０５、４１０及び４１５を含む。ユーザがポータルに最初にアクセスし、その結果としてポータル・ビュー４０１を表示すると、クライアントがレンダリングすべきポートレット・ビュー４０５、４１０及び４１５を取り出すための要求が、ポータル・アプリケーション・サーバ４２０に送信される。ポータル・アプリケーション・サーバ４２０は、ポータル・ビュー４０１のユーザと関連付けることができるカスタマイズ情報４３５にアクセスすることにより、情報に対する要求４１７に応答する。また、カスタマイズ情報４３５は、特定のポートレット・ビュー４０５、４１０及び４１５をカスタマイズするための情報を含むことができる。例えば、特定のポートレット・ビューのカスタマイズ情報４３５は、ポータル・ビュー４０１に対応するポータル・ビューにポートレットがどのように現れるかに関連するスキンまたは画面情報のタイプを含むことができる。更に、カスタマイズ情報４３５は、ポートレット・ビューの１つに表示される天気情報と関連する特定の場所、または、ポートレット・ビューの１つに表示される特定の在庫資金、または、ユーザが興味を持っている特定のスポーツ・チームのような、ユーザにより典型的に所望される情報のタイプと関連する情報を含むことができる。
【００４２】
ポータル・アプリケーション・サーバ４２０は、クライアント側のポータル・ビュー４０１に配信される各ポートレット・ビューのコンピュータ・プログラムまたはポートレット・コード４３０にもアクセスする。しかし、ポートレットと生成されたポートレット・ビューとの間に１対多の関係が存在しうるように、１つのポートレットが複数のポートレット・ビューを生成できるということに留意すべきである。ポートレット・コード４３０は、ユーザにより消費可能なコンテンツのようなポートレット情報を生成する。ポートレット情報は、消費可能なコンテンツをどのように表示するかを記述する表示情報を任意に含むことができる。例えば、拡張可能なマークアップ言語（ＸＭＬ）で指定されたデータのようなマークアップ・データは、消費可能なコンテンツを記述するメタ・データを含む。
【００４３】
ポータル・アプリケーション・サーバ４２０は、ユーザにより最初に表示されるためにクライアントに配信されるポートレット・ビューの各々を分析する。この実施形態では、この分析中、ポータル・アプリケーション・サーバ４２０は、図３及び図４に関連して説明したようにポートレット・リンク・エントリを含むポータル・リンク構造を作成する。ポータル・リンク構造は、ポータル・リンク構造に参照付けられたポータル情報を記述するメタ・データをも含むことができる。本発明の好適な実施形態では、ポータル・リンク構造を構築し、管理する際に分析の制御を可能にするフレームワーク４７０が設けられている。例えば、フレームワーク４７０は、分析の幅と、ポータル・リンク構造が構成される範囲とを制御するのにアプリケーション・プログラム・ユーティリティ機能を備える。フレームワーク４７０は、実行されると、ポートレット情報のキャッシング及びプリフェッチを調整する。
【００４４】
ポータル・アプリケーション・サーバ４２０は、図示のような応答４２２で、ポートレット・アセンブラ４４５、ポートレット・スタイル４５０並びに、最初のポートレット・ビュー４０５、４１０及び４１５をダウンロードする。ポートレット・スタイル４５０は、クライアント側にダウンロードされるポートレット・ビューに対する方式またはスタイル・シートの集合体またはスキンを含む。ポートレット・ビューと一緒に、ポータル・リンク構造をメタ・データの形式でクライアント側に任意にダウンロードすることもできる。本発明の幾つかの実施形態では、最初のポートレット・ビューをダウンロードした後、分析及びポータル・リンク構造の最初の作成をクライアント側で実行する。どんな場合でも、ポータル・リンク構造はクライアント側のメモリ内にストアされる。メモリは、ランダム・アクセス・メモリ（ＲＡＭ）、ディスク、テープまたは何か他の適切なストレージ・メディアを含む。
【００４５】
また、フレームワーク４７０は、同様にダウンロードされるべきアプリケーション・コード４６５用のユーティリティを与える。このようなアプリケーション・コードはフレームワーク内の機能を使用し、ポータル・リンク構造を構築する範囲を判別するアルゴリズムを含むことができる。アプリケーション・コードは、ポータルのユーザが情報を要求する前にどのポートレット・ビューが、また、ポートレット情報のどのくらいがフェッチされたか、並びに、フェッチされた情報が消費可能なコンテンツ及びメタ・データの一方またはその両方を含むかを判別するアルゴリズムを含むことができる。「プリフェッチ」なる用語は、ユーザがこのようなポートレット情報を要求する前にポートレット情報をフェッチするプロセスを表す。好適な実施形態では、アプリケーション・コード４６５は、例えばＪａｖａｓｃｒｉｐｔ（登録商標）言語を用いて書かれ、ポータル・アーキテクチャに適合する。Ｊａｖａｓｃｒｉｐｔ（登録商標）でのアプリケーション・コード４６５の開発により、クライアント上に構成されたＪａｖａｓｃｒｉｐｔ（登録商標）プラグインを有するウェブ・ブラウザ以外の追加のソフトウェアなしで、サーバ上にストアされたコードをクライアント上で実行することができる。アプリケーション・コードがフレームワークの機能にアクセスできる限りは、その他のプログラミング言語を用いてアプリケーション・コード４６５を開発できることを当業者は認識すべきである。
【００４６】
ポートレット・アセンブラ４４５はクライアント側で呼び出され、ポータル・ビュー４０１内にポートレット情報を含むポートレット・ビュー４５５をクライアントのポートレット・ビュー４０５としてレンダリングする。アプリケーション・コード４６５もクライアント側で呼び出されて、ポータル・リンク構造のポートレット・リンク・エントリにより示されるポータル情報がプリフェッチされるかを判別する。この判別が実行された後、ポートレット・アセンブラ４４５は、アプリケーション・コード４６５による要求に応答して、ポータル・アプリケーション・サーバ４２０へのプリフェッチ要求４１９を開始する。プリフェッチ要求４１９は、例えば、クライアントがプリフェッチしたいポータル・リンク構造に含まれるポートレット・ビューの参照を適切に含むことができる。本発明の幾つかの実施形態では、プリフェッチ要求４１９はポータル・リンク構造に複数のポートレット参照を含む。本発明の幾つかの実施形態では、プリフェッチ要求４１９は、ポートレット・ビューに対応する消費可能なデータのみ、または、ポートレット・ビューに対応するメタ・データのみ、または、ポートレット・ビューに対応する消費可能なデータ及びメタ・データ両方の組み合わせをフェッチするかどうかを表すパラメータを含む。ポートレット・ビューが表示可能なブラウザ画面の一部分であるので、このフェッチ可能なデータのすべては、全部の表示可能なブラウザ画面を消費する１つのＨＴＭＬページ全体よりも少ない。
【００４７】
プリフェッチ要求４１９に応答して、ポータル・アプリケーション・サーバ４２０は、サーバ側で対応のポートレットにアクセスし、プリフェッチ要求に応じて、要求された情報をポートレットから取り出す。次に、ポータル・アプリケーション・サーバ４２０は、要求された情報をポートレット・アセンブラ４４５にダウンロードする。ポートレット・アセンブラ４４５は、ダインロードされた情報をキャッシュ４６０の形式のメモリ内にストアする。キャッシュは、ハード・ディスク、キャッシュ・メモリ、ＣＤ‐ＲＯＭ、光ディスク・ストレージ装置または磁気ストレージ装置を含むいかなる適切なコンピュータ可読メディアをも含むことができる。ポータル・ユーザが、例えば、ポートレット内で参照付けられた追加情報を要求するためにポートレット・ビュー内のリンクをクリックすると、ポートレット・アセンブラ４４５は、参照付けられた追加情報と関連するポートレット・リンク・エントリを参照し、キャッシュされたコンテンツへのリンク・フィールド３６２が有効データを含むかを検査する。有効データを含めば、ポートレット・アセンブラは、要求された情報をキャッシュ４６０から取り出し、ユーザがウェブ・サイトを、キャッシュされたロケーションにナビゲートしたことをサーバに示す必要なしに、ユーザへの追加情報をポートレット・ビューにレンダリングする。その他の場合、ポートレット・アセンブラは、コンテンツのサーバＩＤフィールド３６０を使用して、追加情報をポータル・アプリケーション・サーバ４２０から要求する。
【００４８】
アプリケーション・コード４６５に応じて、ポートレット・アセンブラ４４５は、プリフェッチを必要とする参照のいずれかが存在するかを判別するため、新規にレンダリングされるポートレット情報のコンテンツを典型的に分析する。参照のいずれかが存在すれば、プリフェッチ要求４１９が、上述したように行われ、ポータル・リンク構造は、レンダリングされたポートレット・ビューと、レンダリングされていないポートレット・ビューとの間の関係を反映するように更新される。
【００４９】
コンテンツが少しでもあるとしたら、最小コンテンツを有する骨組み（ｓｋｅｌｅｔａｌ）ページを、ポートレット・ビュー４０５、４１０及び４１５の前に最初にダウンロードできることを当業者は認識すべきである。本発明のこの側面では、フレームワーク４７０は、例えばバックグラウンドＨＴＴＰセッションに必要とされるポートレット情報をダウンロードする。フレームワーク４７０は次に、骨組みページとダウンロードされたアプリケーション・コード４６５に基づいてポータル・リンク構造を組み立てる。アプリケーション・コード４６５は、ポータル・リンク構造メタ・データにアクセスするのにフレームワーク４７０を用い、メタ・データを用いてポートレット・ビューのキャッシュをプリフェッチし、ポピュレートする。
【００５０】
２００３年６月１９日出願の「ＭＥＴＨＯＤＳ，  ＳＹＳＴＥＭＳ，  ＡＮＤ  ＣＯＭＰＵＴＥＲ  ＰＲＯＧＲＡＭ  ＰＲＯＤＵＣＴＳ  ＦＯＲ  ＰＯＲＴＬＥＴ  ＡＧＧＲＥＧＡＴＩＯＮ  ＢＹ  ＣＬＩＥＮＴ  ＡＰＰＬＩＣＡＴＩＯＮＳ  ＯＮ  Ａ  ＣＬＩＥＮＴ  ＳＩＤＥ  ＯＦ  Ａ  ＣＬＩＥＮＴ／ＳＥＲＶＥＲ  ＥＮＶＩＲＯＮＭＥＮＴ」と題された米国特許出願第１０／４６４９１０号で更に詳しく述べられているように、ユーザへのポートレット情報をレンダリングすると、ポートレット・アセンブラ・コード４４５は、クライアント側にストアされた情報を、サーバ側から要求された情報と集合化する。
【００５１】
図７は、本発明によるプロセス５００を示すフローチャートである。図７に示すように、論理的に区切られたクライアント／サーバ・コンピュータ環境のサーバ側にアプリケーション・コードを供給することにより、プロセスはステップ５１０で開始することができる。このアプリケーション・コードはＪａｖａＳｃｒｉｐｔ（登録商標）で典型的に書かれ、コンピュータ環境のクライアント側で実行される。アプリケーション・コードは、ポータル・リンク構造のサイズ及びレベル数と、サーバ側からプリフェッチするためのデータのサイズ及び品質とを制御するプリフェッチ・アルゴリズムを含む。ポートレット・リンク・エントリがポートレット・ビューとして現在レンダリングされていれば、ポータル・リンク構造のポートレット・リンク・エントリに隣接するポートレット・リンク・エントリを置き換えないように、アプリケーション・コードはキャッシュ置き換えポリシを指定することができる。アプリケーション・コードはフレームワーク・コードを使用する。フレームワーク・コードは、分析の幅、ポータル・リンク構造が構成される範囲を制御し、ポートレット情報をプリフェッチし、キャッシュするためのユーティリティ機能を提供する。
【００５２】
ステップ５２０では、プロセス５００は、ポータル・リンク構造を完成するため、ポートレット・ビュー内の参照を分析する。この分析を、コンピュータ環境のサーバ側及びクライアント側の一方または両方で実行することができる。ステップ５２５では、アプリケーション・コード及びポータル・リンク構造をクライアント側にダウンロードする。ステップ５３０では、クライアント側は、ポータル・リンク構造のポートレット・リンク・エントリで参照に関連するポートレット情報を、このようなポートレット情報をユーザが要求する前にフェッチするために、アプリケーション・コードを呼び出す。ステップ５４０では、プロセス５００は、フェッチしたポータル情報内の参照を反映するように、ポータル・リンク構造を更新する。サーバ側がステップ５２０の分析を実行すれば、ポータル・リンク構造は、この方法の最初の反復に関する有効データを含む。
【００５３】
クライアントがステップ５２０を実行する代替実施形態では、クライアントは空のポータル・リンク構造を受信し、ステップ５３０の前にステップ５４０でのようにポータル・リンク構造内にポータル・リンク・エントリをポピュレートする。
【００５４】
ステップ５５０では、コンピュータ環境のクライアント側とインターフェースをとるユーザの要求により、プロセス５００は、プリフェッチしたポータル情報を表示する。ステップ５５０の後、ステップ５３０、５４０及び５５０の後続する反復のため、プロセス５００はステップ５３０に進行する。ユーザがこのポータルとインターフェースをもはやとりたくない場合にはプロセス５００は終了する。
【００５５】
従って、本発明による実施形態では、ユーザから見たとき、ウェブ・アプリケーションの応答時間は、論理的に区切られたクライアント／サーバ・コンピュータ環境のサーバ側よりむしろクライアント側でポートレット情報をプリフェッチし、キャッシュすることにより改善される。
【００５６】
本発明の意図及び範囲から逸脱することなく、当業者により本発明の多くの変更及び修正を行うことができ、これらも本発明と同様の利点を与えることができる。従って、当然のことながら、上述の実施形態は例示の目的のためにのみ説明されたものであって、これらの実施形態が請求項により定義された本発明を限定するものと理解すべきではない。従って、請求項は、そこに記載された要素の組み合わせのみを含むだけでなく、ほぼ同一の結果を得るためにほぼ同一の機能をほとんど同じように実行する等価な要素のすべてを含むものと解釈されるべきである。従って、請求項は、具体的に図示し上述したもの、概念的に等価なもの、及び、本発明の教示を取り込むものを含むものと理解されるべきである。
【００５７】
上記の例示的な実施形態に関して本発明を説明したが、本発明はこれら実施形態に限定されず、本発明の範囲に含まれる多くの可能な変更及び修正があることを当業者は理解するであろう。
【００５８】
本発明の範囲は、本明細書で開示したいずれの新規な特徴または特徴の組み合わせをも含む。これにより、この出願の審査中、または、この出願を基礎とする他の出願の審査中、このような特徴または特徴の組み合わせに係る新たな請求項を作成することがありうることに留意すべきである。特に、請求項を参照して、従属請求項からの特徴を独立請求項の特徴と組み合わせることができ、それぞれの独立請求項からの特徴を、請求項に列挙した特定の組み合わせだけでなく適切に組み合わせることができる。
【００５９】
疑いを回避するため、本発明を通して本明細書で用いた「含む」なる用語は、「のみから成る」を意味するものと解釈されるべきではない。
【図面の簡単な説明】
【００６０】
【図１】本発明を適切に実装できる例示的なシステムを示す図である。
【図２】本発明による実施形態を使用して提供できる例示的なポータル・ビューを示す図である。
【図３】ポートレットに埋め込まれた参照を示す階層図である。
【図４】本発明の一実施形態による例示的なポータル・リンク構造を示すブロック図である。
【図５】本発明の一実施形態による図４のポータル・リンク構造内の例示的なポートレット・リンク・エントリを示すブロック図である。
【図６】本発明の一実施形態によるポータル・リンク構造に関係するクライアント／サーバの相互作用を示すブロック図である。
【図７】本発明の実施形態によるプロセスを示すフローチャートである。
【図１】
2007536655.tif 000003
【図２】
2007536655.tif 000004
【図３】
2007536655.tif 000005
【図４】
2007536655.tif 000006
【図５】
2007536655.tif 000007
【図６】
2007536655.tif 000008
【図７】
2007536655.tif 000009
【国際調査報告】
2007536655.tif 000010
2007536655.tif 000011
2007536655.tif 000012