Description
ポータブル・ポートレットを選択および配信する方法ならびに装置
US 11/094,092 20050330 20120111 G06F 13/00 patcit 1 : 特表2005−507122(JP,A)
patcit 2 : 特開2003−036197(JP,A)
EP2006061151 20060329 WO2006103260 20061005 2008537217 20080911 20090123 田上 隆一
Technical Field
[0001]
本発明は、一般にハイパーテキスト・ポータルおよびポートレットに関する。詳細には、本発明は、ポートレットとポータルとの間でデータを共有する際の柔軟性および再使用可能性の向上を可能にするポートレット・データ共用システム、方法、ならびにプログラム製品を提供する。
Background Art
[0002]
ポータルまたはポータル・プログラムは、パーソナライゼーション、様々なソースからのコンテンツ集約を提供し、フォーマッティングおよびその他のプレゼンテーション層機能を提供し、任意選択で、異種のウェブ・サービスにアクセスするのに必要なシングル・サインオンを提供することのできるウェブ・ベースまたはハイパーテキスト・ベースのアプリケーションである。ポータル・サーバは、ユーザにデータを配信する、組み合わされたソフトウェア、ハードウェア、およびクライアント・データであってもよい。
[0003]
インターネットの使用がよりパーベイシブとなるにつれて、ウェブ・コンテンツを表示するためのよりよい技術が常に開発されている。この範囲で、ポータル・サーバは、ユーザにウェブ・コンテンツを配信する際に好まれる技術となった。通常、ポータル・サーバは、ポータル・プログラム(例えばニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションのWEBSPHERE(R))を含み、ポータル・プログラムは、1つまたは複数のポートレットを含むポータル・ページとしてウェブ・コンテンツを配置する。
[0004]
ポートレットは、コンテンツおよび機能のカプセル化である。ポートレットは、ウェブ・ベースのコンテンツ、アプリケーション機能、および資源へのアクセスを組み合わせる再使用可能コンポーネントである。ポートレットはポータル・ページとして組み立てられ、ポータル・ページはポータル実装を構成する。ポートレットは、そのコンテンツをポータル・ページ上のウィンドウ・ライクなディスプレイ内に提示する点でWindows (登録商標)(R)アプリケーションと似ている。Windows (登録商標)(R)アプリケーションと同様に、ポートレット・ウィンドウは、コントロールを含むタイトル・バーを有し、ユーザがアプリケーションを拡大(最大化)および縮小(最小化)することを可能にする。
[0005]
各ポートレットは、ユーザのプリファレンスに従って指定されたウェブ・コンテンツのセクションを含む。例えば、ユーザは、ニュース、天気、およびスポーツに関するポートレットを有するユーザ自身のポータル・ページを確立することができる。したがって、ポートレット・ウィンドウは、ポートレット・プログラムの外面的発現(outward manifestation)である。ポートレット・プログラムは、適切なコンテンツ・プロバイダから所望のウェブ・コンテンツを得て、ウェブ・コンテンツを集約することができる。各ポートレットは、ウェブ・コンテンツが適切なポートレット・ウィンドウまたはサブウィンドウ内に表示されるように、ポータルと連係してマークアップ(例えばHTML)を生成する。このポータル技術により、個々のウェブ・ユーザ向けにパーソナライズされた「ホームページ」が爆発的に増加した。
[0006]
開発者は、市販のアプリケーションのためのポートレット技術を適用し始めている。例えば、ポータル・ページを使用して、従業員、顧客、サプライヤなどのためのページをカスタマイズすることができる。こうしたアプリケーションでは、各ポートレットで提示されるデータがしばしば関係付けられる。例えば、旅行ポートレットの「行先都市」フィールドのデータを、天気ポートレットの「対象都市」フィールドと共用することができる。現在の実装では、ポートレットは、パラメータをメッセージングし、または渡すことにより、別の既知のポートレットとデータを共用することができる。しかし、ポートレット開発者は、データ共用を実装するために、すべての関与するポートレットの詳細な知識を有さなければならない。さらに、データを共用するかどうか、およびどのデータを共用するかの判定は、ポートレットが開発されるときに固定される。こうした制限により、ポートレットの再使用可能性および相互運用性が制限される。
[0007]
情報を共用し、ポータルに集約する従来技術の方法は、とりわけシンプル・オブジェクト・アクセス・プロトコル(SOAP)を含んでいた。SOAPは、好ましくはハイパーテキスト転送プロトコル(HTTP)およびその拡張可能なマーク付け言語(XML)を情報交換のための機構として使用することにより、ある種類のオペレーティング・システムで動作するプログラムが同じ種類または別の種類のオペレーティング・システムでのプログラムと通信するための方式である。SOAPは、あるコンピュータ内のプログラムが別のコンピュータ内のプログラムを呼び出し、それに情報を渡すことができるように、HTTPヘッダおよびXMLファイルをどのように符号化するかを指定する。SOAPはまた、呼び出されたプログラムがどのように応答を返すことができるかも指定する。
patcit 1 : 米国公開特許出願2002/0169852A1
Disclosure of Invention
Technical Problem
[0008]
コンテンツを追加する旧来の方式は、統合開発環境(IDE)、すなわち通常はコード・エディタ、コンパイラ、デバッガ、およびグラフィカル・ユーザ・インターフェース(GUI)ビルダからなるアプリケーション・プログラムとしてパッケージ化されたプログラミング環境を使用することを含むことがあった。その前でさえ、異種のソースからのコンテンツを統合することはしばしば、HTMLを編集し、CGI機能を追加する労力を要するプロセスである可能性があった。いずれの場合も、労力を要し、時間がかかり、難解な言語のセマンティクスおよびフォーマッティングの特別な知識が求められた。これは確かに、情報を求めてウェブをサーフィンする大多数の人々が行うべき作業ではなかった。
[0009]
米国公開特許出願2002/0169852A1、SYSTEMAND METHOD FOR DYNAMICALLY INTEGRATING REMOTE PORTLETS INTO PORTALS、IBMにおいて、ある程度の進歩がなされた。従来技術の発明は、ポータルでリモート・ポートレットをインストールし、それにアクセスし、それを使用する単純化された手続きを提供するための、称賛に値する目標を有していた。従来技術は、SOAPおよびその他のプロトコルがメニュー形式のインターフェースからポートレットを選び、不特定の順序でそのようなポートレットをポータルに追加することをサポートすることのできる方式を示したが、従来技術は、アクティブにレンダリングされたポートレットを親ページでアドホックに選択し、そのようなポートレットを、ユーザが望んだポータル・ウィンドウ・リアル・エステートの厳密な区域内に次々に配置するという現代的概念に対処することを怠っていた。
Technical Solution
[0010]
第1の態様によれば、ポートレット状態を有するポートレットを選択する方法であって、装飾およびイベント・トリガを有するポートレットをレンダリングするステップと、イベント・トリガに対応するユーザ・イベントをサーバで受信するステップと、ユーザ・イベントに基づいてポートレット状態を直列化するステップと、ポートレット状態をキーに格納するステップと、ポートレット状態を有するキーをクライアントに送るステップとを含む方法が提供される。
[0011]
第2の態様によれば、持続ポータル・セッションを確立する方法であって、サーバでハイパーテキスト転送プロトコル要求を受信するステップと、ポータル・ウィンドウ上のエリアに対応する第1イベント・トリガを有するポータル・ウィンドウをレンダリングするステップと、イベント・トリガを受信するステップと、ポートレットを有するポートレット・リファレンスを有するキーを受信するステップと、キーをオリジン・サーバに送信するステップと、キーに従ってポートレットをレンダリングするステップとを含む方法が提供される。
[0012]
第3の態様によれば、ポートレット状態を有するポートレットを選択するサーバであって、装飾およびイベント・トリガを有するポートレットをレンダリングするプロセッサと、プロセッサに結合され、イベント・トリガに対応するユーザ・イベントをサーバで受信するネットワーク・アダプタと、プロセッサに結合され、ユーザ・イベントに基づいてポートレット状態を直列化する手段手段と、ポートレット状態をキーに格納するメモリと、ポートレット状態を有するキーをクライアントに送るLANアダプタとを備えるサーバが提供される。
[0013]
第4の態様によれば、持続ポータル・セッションを確立するシステムであって、サーバでハイパーテキスト転送プロトコル要求を受信する手段と、ポータル・ウィンドウ上のエリアに対応する第1イベント・トリガを有するポータル・ウィンドウをレンダリングする手段と、イベント・トリガを受信する手段と、ポートレットを有するポートレット・リファレンスを有するキーを受信する手段と、キーをオリジン・サーバに送信する手段と、キーに従ってポートレットをレンダリングする手段とを備えるシステムが提供される。
[0014]
本発明は、コンピュータ・ソフトウェアとして実装することができる。
[0015]
ポートレット・データを共用するシステム、方法、およびプログラム製品が提供される。具体的には、別個のサーバと共用することができ、かつ分離サーバ(disjoint server)を介して共用することのできるポートレット内のデータへのアクセスを開発者が定義することを可能にするシステム、方法、およびプログラム製品が提供されることが好ましい。さらに、ユーザまたは開発者がポートレット間のデータ共用を定義することを可能にするポートレットを用いた解決策が提供されることが好ましい。こうした特徴は、より柔軟であり、様々なアプリケーションで再使用可能なポートレットを提供する。
[0016]
本発明は、ポートレットを選択する方法、装置、およびコンピュータ・プログラム製品を提供する。最初に、好ましくは、オリジン・サーバは、ユーザまたはクライアントのhttp(ハイパーテキスト転送プロトコル)要求に応答してポートレットをレンダリングする。ポートレットは、好ましくはポートレット・ウィンドウとして表示され、好ましくは、ポインタ・アクションまたはイベントに応答するボタンまたはグラブ可能フレームを有する。ユーザはボタンをクリックし、好ましくは、オリジン・サーバはポートレットの状態を直列化する。好ましくは、オリジン・サーバはポートレット状態をキーに格納し、キーをクライアントに送る。
[0017]
後で、ユーザのお気に入りのポータルで、本発明の一実施形態は、http要求を受信し、ポータル・ウィンドウの一部に対応するイベント・トリガを少なくとも有するポータル・ウィンドウをレンダリングする。ポータルは、付随するポートレット状態のキーを受信する。キーは、クライアントとオリジン・サーバとの間のセッションを持続させるための手段として働くが、キーをオリジン・サーバに通信するためにポータル・サーバ(分離サーバと呼ばれることもある)をプロキシとして使用する。分離サーバは、キーに従ってポートレットをレンダリングする。
[0018]
次に、単なる例として、添付の図面を参照しながら本発明の好ましい実施形態を説明する。
Best Mode for Carrying out the Invention
[0019]
当技術分野で周知の通り、「ポートレット」という用語は、ポータル・ページの可視セクションと、可視セクションでの表示のためにポータル・ページ内のコンテンツを取得および集約するのに使用されるプログラム・コードの両方を指すことを理解されたい。したがって、ポートレットは、(1)ポータル・ページの一部として表示される可視ポートレット、および(2)可視ポートレットで表示されるコンテンツを得るためのプログラム・コードを含むポートレット・プログラムという少なくとも2つの面を有すると理解されたい。
[0020]
集約は、ウェブ・ページ内の様々なソースからコンテンツを統合するプロセスである。
[0021]
本発明の実施形態の一利点は、コンテンツをポータルとして構築および集約するユーザ・アクションが単純化されることである。単純化は、2つのブラウザ・ウィンドウが表示された状態で、ユーザがブラウザ・ウィンドウから(受信サーバでホストされる)第2のブラウザ・ウィンドウにポートレットをドラッグし、そのようなブラウザ・ウィンドウをレンダリングする新しいサーバ、恐らくは分離サーバが、別のサーバ(恐らくは分離サーバ)でホストすることのできるポートレットへ繰り返しアクセスすることを保証することが可能となる形で達成可能である。実質的に、単純なドラッグ・アンド・ドロップ・アクションで比較的永続的な追加を行うことができる。
[0022]
次に各図、特に図1を参照すると、本発明を実装することのできるデータ処理システムの絵画表現が、本発明の好ましい実施形態に従って示されている。システム・ユニット102と、ビデオ・ディスプレイ端末104と、キーボード106と、フレキシブル・ディスク・ドライブおよびその他のタイプの永続的かつ取外し可能な記憶媒体を含むことのできる記憶装置108と、マウス110とを含むコンピュータ100が示されている。例えばジョイスティック、タッチパッド、タッチ・スクリーン、トラックボール、マイクロフォンなどの追加の入力装置をパーソナル・コンピュータ100に含めることができる。コンピュータ100は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションの製品であるIBM(R)eServer(R)コンピュータやIntelliStation(R)コンピュータなどの任意の適切なコンピュータを使用して実装することができる(IBM、eServer、およびIntelliStationは、インターナショナル・ビジネス・マシーンズ・コーポレーションの米国およびその他の国における商標)。図示される表現はコンピュータを示すが、本発明の他の実施形態は、ネットワーク・コンピュータなどの他のタイプのデータ処理システムとして実装することができる。好ましくは、コンピュータ100は、コンピュータ100内での動作の際にコンピュータ可読媒体内にあるシステムソフトウェアによって実装することのできるグラフィカル・ユーザ・インターフェース(GUI)も含む。
[0023]
次に図2を参照すると、一実施形態に従って本発明を実装することのできるデータ処理システムのブロック図が示されている。データ処理システム200は、本発明のプロセスを実装するコードまたは命令を配置することのできる、図1のコンピュータ100などのコンピュータの一例である。データ処理システム200は、PCIローカル・バス・アーキテクチャを使用する。図示される例はPCIバスを使用するが、AGPやISAなどの他のバス・アーキテクチャも使用することができる。プロセッサ202およびメイン・メモリ204は、PCIブリッジ208を介してPCIローカル・バス206に接続される。PCIブリッジ208はまた、プロセッサ202用の統合メモリ・コントローラ/キャッシュ・メモリも含むことができる。直接構成要素相互接続またはアドイン・コネクタを介してPCIローカル・バス206への追加の接続を行うことができる。図示する例では、ローカル・エリア・ネットワーク(LAN)アダプタ210、SCSIホスト・バス・アダプタ212、および拡張バス・インターフェース214が、直接構成要素接続によってPCIローカル・バス206に接続される。一方、オーディオ・アダプタ216、グラフィックス・アダプタ218、およびオーディオ/ビデオ・アダプタ219は、拡張スロットに挿入されたアドイン・ボードによってPCIローカル・バス206に接続される。拡張バス・インターフェース214は、キーボード/マウス・アダプタ220、モデム222、および追加のメモリ224に対する接続を提供する。SCSIホスト・バス・アダプタ212は、ハード・ディスク・ドライブ226、テープ・ドライブ228、およびCD−ROMドライブ230に対する接続を提供する。典型的なPCIローカル・バス実装は、3つまたは4つのPCI拡張スロットまたはアドイン・コネクタをサポートする。
[0024]
オペレーティング・システムがプロセッサ202上で動作し、図2のデータ処理システム200内の様々な構成要素の制御を調整および提供するのに使用される。オペレーティング・システムは、Microsoft(R) Corporationから入手可能なWindows (登録商標)(R)XPなどの市販のオペレーティング・システムでもよい(MicrosoftおよびWindows (登録商標)は、Microsoft Corporationの米国およびその他の国における商標)。Java(登録商標)(R)などのオブジェクト指向プログラミング・システムがオペレーティング・システムと共に動作することができ、データ処理システム200上で実行中のJava(登録商標)(R)プログラムまたはアプリケーションからオペレーティング・システムへの呼出しを実現する。「Java(登録商標)(R)」は、Sun Microsystems,Inc.の米国およびその他の国における商標である。オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムに対する命令は、ハード・ディスク・ドライブ226などの記憶装置上に配置され、メイン・メモリ204にロードしてプロセッサ202で実行することができる。
[0025]
図2のハードウェアは実装に応じて変化することがあることを当業者は理解されよう。フラッシュ読取り専用メモリ(ROM)、同等の不揮発性メモリ、光ディスク・ドライブなどのその他の内部ハードウェアまたは周辺装置を、図2に示すハードウェアに加えて、またはその代わりに使用することができる。さらに、本発明の実施形態のプロセスをマルチプロセッサ・データ処理システムに適用することができる。
[0026]
例えば、データ処理システム200が任意選択でネットワーク・コンピュータとして構成された場合、データ処理システム200は、SCSIホスト・バス・アダプタ212、ハード・ディスク・ドライブ226、テープ・ドライブ228、およびCD−ROM230を含まないことがある。その場合、コンピュータ、正確に言えばクライアント・コンピュータは、LANアダプタ210、モデム222などの何らかのタイプのネットワーク通信インターフェースを含む。別の例として、データ処理システム200は、データ処理システム200が何らかのタイプのネットワーク通信インターフェースを備えるか否かにかかわらず、何らかのタイプのネットワーク通信インターフェースに依拠することなくブート可能であるように構成されたスタンド・アロン・システムでもよい。別の例として、データ処理システム200は、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方を格納する不揮発性記憶を提供するためにROMまたはフラッシュROMあるいはその両方と共に構成された携帯情報端末(PDA)装置でもよい。
[0027]
図2に示す例および上述の例は、アーキテクチャ上の制限を示唆するものではない。例えば、データ処理システム200は、PDAの形態を取ることに加えて、ノートブック・コンピュータまたはハンドヘルド・コンピュータでもよい。データ処理システム200はキオスクまたはウェブ・アプライアンスでもよい。
[0028]
本発明の実施形態のプロセスは、コンピュータで実装される命令を使用してプロセッサ202で実行され、コンピュータで実装される命令は、例えばメイン・メモリ204、メモリ224、1つまたは複数の周辺装置226〜230などのメモリ内に配置することができる。
[0029]
次に図3を参照すると、ブロック図が、好ましい実施形態に従って本発明を実装することのできる1つまたは複数のサーバとクライアントの関係を示す。図3には、マークアップまたはその他のファイルを提供することのできるオリジン・サーバ(発信サーバと呼ばれることもある)301が示されている。マークアップ言語を含むファイルを取り出して送信すること、オンザフライで作成して送信すること、またはファイルの取り出しとオンザフライで作成したマークアップの追加を何らかの形で組み合わせることにより、マークアップを「レンダリング」することができる。レンダリングは、完全な十分に形成されたマークアップ・ファイルまたはストリームがプロセスの終わりに生成されるように、または十分に形成されたマークアップ・ファイルまたはストリームのフラグメントが生成されるように行うことができる。レンダリングは一般に要求、例えばクライアント305からのハイパーテキスト転送プロトコル(HTTP)要求の受信時に行われる。レンダリングされたファイルまたはストリームの多くの要素はブラウザ上に表示することができるが、コメントや時々実行されるプログラム命令などの一部の要素は表示されないことがある。レンダリングの多くの態様は、図2のプロセッサ202のプログラム制御下にある。
[0030]
オリジン・サーバ301、クライアント305、および分離サーバ303は、図1の1つまたは複数のデータ処理システムの多くの部分、さらにはすべての部分を実装することができる。オリジン・サーバ301、クライアント305、および分離サーバ303はネットワークによって相互接続することができ、ネットワークは、話を簡単にするために図示されていない。そのようなネットワークは、例えばプライベートLANを介して、堅固で一定の接続サービスを提供することができる。そのようなネットワークは、Wi−Fiまたは他のワイヤレス環境の場合のように、一時的かつ断続的なこともある。
[0031]
一般に、オリジン・サーバ301は、クライアント305にポートレットの初期レンダリングを提供し、クライアント305は、自信が選択したポータル、例えば分離サーバ303(受信サーバと呼ばれることもある)において後で使用したい少なくとも1つのポートレットをオリジン・サーバ301に示す。オリジン・サーバ301は、ファイルと考えることができ、ストレージに不揮発性式に格納することのできる共用セッション307を作成することができる。共用セッション307はより一時性(ephemeral)でよいが、含むことができるのはサーバ301から出力されたデータ・ストリームにすぎず、伝送中に占有する位置に応じて様々な形を取ること、すなわち、ネットワークにわたってフラグメントとして存在するようにパケット化し、パケット交換することができる。
[0032]
さらに、オリジン・サーバは、同じ管理ドメイン内のサーバのクラスタでもよい。したがって、各サーバは、共通データベースを共用すること、またはサーバ間でそのようなデータを分散させることができる。クラスタ内のサーバの1つと確立されたトランザクションまたはプロトコルをクラスタ全体とのトランザクションまたはプロトコルと見なすことができる。同様に、分離サーバは、それ自体の共通管理ドメイン内の処理を複数のサーバに調整させることによってスケーリングすることができる。
[0033]
共用セッション307は、ポートレットに関する状態情報に加えて、クライアントと、分離サーバと、オリジン・サーバ内のポートレットの組合せを一意に定義するキーまたは固有文字列として存在することができ、ポートレットに関する状態情報は、キーが参照するオブジェクトでもよい。
[0034]
図4に、図3のオリジン・サーバ301が本発明の一実施形態に従って実行することのできるステップを示す。クライアント305は、オリジン・サーバ301にHTTP要求を行うことができる。オリジン・サーバは、例えば図2のネットワーク・アダプタ201を介してそのような要求を受信し(ステップ401)、マークアップ・ファイルおよび恐らくは何らかのコードを送信することによって第1ポートレットをレンダリングすることができる(ステップ403)。マークアップは、オリジン・サーバで全体的または部分的にオンザフライで生成することができる。オリジン・サーバ301とクライアント305との間のセッションでは、オリジン・サーバは、第1ポートレットに適用可能である第1装飾も提供し(ステップ405)、装飾は、ボタン制御、ウィンドウ・グラブ・バー、またはその他の任意のアクティブな装飾である。装飾は、イベント・トリガに基づいてポートレットの脱水(dehydration)(以下で説明する)を実施するサーブレットまたはその他のプログラムに結合することができる。そのようなイベント・トリガは、ポートレット・ウィンドウ内またはその周りに関して座標で示される位置でのポインタ、例えばマウスのクリックを含むことができる。
[0035]
オリジン・サーバは、第2ポートレットをレンダリングし(ステップ407)、続いて第2装飾をレンダリングする(ステップ409)。第1ポートレットと同様に第2ポートレット(ステップ407)は、マウス・クリックなどのポインティング・デバイス・ユーザ・イベントで与えられるイベント・トリガを待つ、それに関連するコードを有することができる。
[0036]
オリジン・サーバは、クライアントをソースとするユーザ・イベントを受信することができる(ステップ411)。ユーザ・イベントがポートレット装飾の1つに関連するイベント・トリガに対応する場合(ステップ413)、オリジン・サーバはポートレットのコードを起動することができる。そうでない場合、オリジン・サーバは、ユーザ・イベントの受信(ステップ411)を待ち続ける。ポートレットのコードが起動された場合、そのようなコードは、例えば対応するポートレットを直列化して、共用セッションに格納することのできるオブジェクトまたはその他のエンティティを生成することにより、ポートレットを脱水する(ステップ415)。直列化は、後の何らかの使用のために格納する目的でオブジェクトの状態がXMLやバイナリフォーマットなどの何らかの直列データ・フォーマットに変換されるプロセスである。言い換えれば、オブジェクト、例えばポートレットは、再び必要とされるまで、「脱水」され、取って置かれる。
[0037]
脱水されたオブジェクトは、単に状態データ、例えばポートレット状態を含むことができる。ポートレット状態および何らかのリファレンス、例えば完全修飾URI(Uniform Resource Identifier)を、例えば図2のメイン・メモリ204内のキーに格納することができる。次いで、LANアダプタを介してキーをクライアントに送ることができる(ステップ417)。LANアダプタは図2のネットワーク・アダプタ210でもよい。
[0038]
図3のオリジン・サーバは、状態データを使用して、装置から一時http要求を後で受信することができ、そのような状態データは、恐らくはセッションの固有識別子を含む。オリジン・サーバがセッションを認証することができる範囲で、オリジン・サーバは、セッションのユーザ、または分離サーバなどの任意の仲介に課金することができる。そのような課金は、1日の使用ごとに、1時間の使用ごとに、またはhttp要求ごとに行うことができる。そのような使用は、オリジン・サーバへのhttp要求を行う動作を含むことができ、http要求は固有識別子を伴う。
[0039]
クライアント自体にはユーザが手動で指示することができる。ローカルにキーを有するユーザは、次に何を行うかに関して高い柔軟性を有する。キーを後の使用のためにメモリに格納すること、キーをクライアント内部のウェブ・ページに配置すること、またはXML HTTPセッションを介してキーをユーザのお気に入りのポータルに送ることができる。この第3のケースを次に検討する。
[0040]
図5に、第1オリジン・サーバとは異なるものでもよい、本発明の一実施形態による第2サーバで実施することのできるステップを示す。実際には、第2サーバは、第1サーバとは異なる管理ドメイン内にあってもよく、したがって分離サーバでもよい。この実施形態では、このサーバを分離サーバと呼ぶが、第2サーバはオリジン・サーバと同じサーバであってもよいことを理解されたい。
[0041]
分離サーバは、クライアントからHTTP要求を受信することができる(ステップ501)。分離サーバは、ユーザ・プリファレンスと、クライアントに対して既に確立された構成とを伴うアカウントを有することができる。認証に関しては、特に新しいアカウントが分離サーバで生成中であるときは、任意選択でよい。分離サーバは、通常はポータルと見なされるものを提供することができる。分離サーバは、例えばユーザが最初にアカウントを確立したときに、まばらであり、ほとんど装飾なしにレンダリングされるポータルを提供またはレンダリングすることができる(ステップ503)。ポータルは、ユーザ・イベントと、ポータル・ウィンドウであるレンダリングされたウィンドウ内のその相対位置とを検出するための何らかの方式を提供することを除き、非常にわずかなコンテンツからなることができる。この最小限のビューにおいて、第1イベント・トリガを有する第1装飾をレンダリングすることができ(ステップ505)、第2ユーザ・イベント・トリガを有する第2装飾をレンダリングすることができる(ステップ507)。そのような装飾は、ポータル・ウィンドウ内の異なるエリアを占有することができ、したがって、ポータル・ウィンドウ内で特定のポートレットがどこに現れるように構成されるべきかに関するプリファレンスをユーザが伝える手段を提供する。
[0042]
第1装飾は、表示されるポータルのエリア内のマウス・クリックに応答することができる。エリアは仮想エリアであり、ディスプレイ・サイズの小ささのために、ディスプレイ、ウィンドウ、またはその両方の縁部を超えて延びることができることを理解されたい。
[0043]
分離サーバは、ユーザ・イベントを受信することができる(ステップ509)。場合によっては、ユーザ・イベントは第1装飾または第2装飾に関連するユーザ・イベント・トリガに関係せず(ステップ511)、したがって、フロー中で、イベントを待ち続けるループが行われる。そうでない場合、ユーザ・イベントは装飾のユーザ・イベント・トリガに対応する(ステップ511)。
[0044]
次いで、イベント・トリガは、分離ポータル内のコードに、以前に得られたキーを検査または受信させ(ステップ513)、それを再水和(rehydrate)させ、すなわち、オリジン・サーバにおけるその位置からポートレット・オブジェクトを取得させ、キーの状態をそれに適用させる。キーの状態をポートレットに適用するステップは、ポートレットに格納された方法またはステップのうちの少なくとも1つを実行することを含む。キーは、ユーザの認証、必要なウェブ資源の可用性(ISPに障害が発生するか、またはオリジン・ホストが何らかの種類のDOSアタックを受けた場合に、ウェブ資源が利用可能でない可能性があるため)などの何らかの妥当性検査を通過することができる(ステップ515)。妥当性検査のyes分岐(ステップ515)が生じた場合、分離サーバは、ユーザ・イベントのターゲットであった装飾の位置に一致するポータル・ウィンドウの相対位置のキーに対応するポートレットをレンダリングする(ステップ519)。
[0045]
(例えばマウスのクリックまたはリリースの時のマウスの座標で与えられる)相対位置のポートレットのレンダリングに続いて、分離サーバは、ポートレット状態、およびポータル・ウィンドウ内のポートレットの相対座標を再呼出しするデータ構造内にキーを格納することができる(ステップ521)。ポータルは、カラー、フォント、その他の美的選択肢など、ユーザによって先に選択されたプリファレンスによってポートレット・ウィンドウの表示を修正することができ、それによってポートレットが、ポータル(URI)への後続のHTTP要求で同一の一般的方式で永続的に示される。
[0046]
(どんな理由であれ)妥当性検査でキーが有効でなければ(ステップ515)、分離サーバがユーザ・イベントを待ち続けるようにすることができる(ステップ509)。XML HTTPを介してキーを受信するステップ(ステップ513)は、ポータルがキーを要求するステップも含むことができる。
[0047]
分離サーバは、ユーザに関するポートレットの集まりを集約する特権に関して課金することができる。課金は、ユーザが分離サーバ上に配置するポートレットごとに確立することができる。
[0048]
本発明の一実施形態は、Java(登録商標)(R)および関連するプログラミング言語に依拠することができ、いくつかの機能を実施するのにJVMに依拠することができる。
[0049]
本発明を完全に機能するデータ処理システムの状況で説明したが、本発明のプロセスをコンピュータ可読媒体の形態の命令および様々な形態として配布することができ、その配布を実施するのに実際に使用される特定のタイプの信号担持媒体の如何にかかわらず、本発明が等しく当てはまることを当業者なら理解するであろうことに留意されたい。コンピュータ可読媒体の例には、フレキシブル・ディスク、ハード・ディスク・ドライブ、RAM、CD−ROM、DVD−ROMなどの記録可能型媒体や、デジタル/アナログ通信リンク、例えば無線周波数/光波伝送などの伝送形式を使用する有線/無線通信リンクなどの伝送型媒体が含まれる。コンピュータ可読媒体は、特定のデータ処理システムで実際に使用するために復号化されるコード化フォーマットの形態を取ることができる。
[0050]
例示および説明の目的で本発明の説明を提示したが、本発明の説明は網羅的なものではなく、開示の形態の発明に限定されない。多数の修正形態および変形形態が当業者には明らかであろう。本発明の原理、実際的な応用例を最もよく説明するため、および企図される特定の使用法に適する様々な修正を有する様々な実施形態に関して本発明を当業者が理解できるように実施形態を選び、説明した。
Brief Description of Drawings
[0051]
[fig. 1] 本発明の好ましい実施形態による汎用コンピュータ・システムである。
[fig. 2] 本発明の一実施形態による発信サーバ上で実施されるステップを示すフロー・チャートである。
[fig. 3] 本発明の好ましい実施形態によるネットワークで仲介されるクライアント、オリジン・サーバ、および分離サーバのアーキテクチャである。
[fig. 4] 本発明の一実施形態によるオリジン・サーバ上で実施されるステップを示すフロー・チャートである。
[fig. 5] 本発明の一実施形態による分離サーバ上で実施されるステップを示すフロー・チャートである。
Claims
[1]
サーバとクライアントとのセッション情報を含むポートレット状態を有するポートレットを選択する方法であって、
前記サーバで、ハイパーテキスト転送プロトコル要求を前記クライアントから受信するステップと、
装飾およびイベント・トリガを有するポートレットをレンダリングするステップと、
前記サーバで、ポートレット装飾の1つに関連する第1の前記イベント・トリガに対応する
第1ユーザ・イベントを
前記クライアントから受信するステップと、
前記サーバで、ドロップ指示を含む第2ユーザ・イベントを前記クライアントから受信するステップと、
前記
第1ユーザ・イベントに基づいて
前記ポートレット状態を
直列データフォーマットに変換するステップと、
前記ポートレット状態をキーに格納するステップと、
前記ポートレット状態を有する前記キーを
前記クライアントに送るステップと
、を含み、
前記第1ユーザ・イベントを前記クライアントから受信するステップは、ドラッグ指示を受信するステップを含み、
前記ドラッグ指示を受信するステップは、ポートレット・ウィンドウ内の座標でドラッグ指示を受信するステップを含み、
前記第2ユーザ・イベントを前記クライアントから受信するステップは、ポインタ・アクションを受信することを含み、
前記ポートレット状態をキーに格納するステップは、URIを前記キーに格納するステップを含む
方法。
[2]
クライアントと接続され、クライアントとのセッション情報を含むポートレット状態を有するポートレットを選択するサーバであって、
装飾およびイベント・トリガを有するポートレットをレンダリングするプロセッサと、
前記プロセッサに結合され、
前記サーバで、ポートレット装飾の1つに関連する第1の前記イベント・トリガに対応する
第1ユーザ・イベントを
前記クライアントから受信するネットワーク・アダプタと、
前記プロセッサに結合され、前記サーバで、ドロップ指示を含む第2ユーザ・イベントを前記クライアントから受信する前記ネットワーク・アダプタと、
前記プロセッサに結合され、前記
第1ユーザ・イベントに基づいて
前記ポートレット状態を
直列データフォーマットに変換する手段と、
前記ポートレット状態をキーに格納するメモリと、
前記ポートレット状態を有する前記キーを
前記クライアントに送るLANアダプタと、
前記プロセッサに動作可能に結合された前記クライアントに課金する手段と、を備え、
前記ネットワーク・アダプタは、ドラッグ指示を受信する手段を備え、
前記ドラッグ指示を受信する手段は、ポートレット・ウィンドウ内の座標でドラッグ指示を受信する手段を備え、
前記ネットワーク・アダプタは、ポインタ・アクションを受信する手段を備え、
前記メモリは、URIを前記キーに格納するメモリを含む
サーバ。
[3]
コンピュータ上で実行されたときに
請求項1の方法を実施するように適合されたプログラム・コード手段を含むコンピュータ・プログラム。
Drawings