(57)【要約】本発明により、ウェブブラウザウインドウ（３２０）中に埋め込まれたアプリケーション出力ウインドウ（３２６）内でのアプリケーション出力データの表示が可能になる。アプリケーション出力データのソースを提供するアプリケーションプログラムが非ウェブ対応（例えば、レガシーアプリケーション）である場合であっても、アプリケーション出力ウインドウ（３２６）は、ウェブブラウザウインドウ（３２０）内で動的に移動、サイズ変更および別の方法で操作できる。本発明は、アプリケーション出力ウインドウ（３２６）に関連付けられたウインドウ属性情報を第１の仮想チャンネル（６６０）を介して受け取り、第２のチャンネル（６７０）を介して受け取られたアプリケーション出力データを、ウインドウ属性情報を用いて形成および／または修正されるアプリケーション出力ウインドウ（３２６）内で表示する。
2005517254.tif 000002
【特許請求の範囲】
【請求項１】
ウェブブラウザ中でアプリケーション出力データを表示する方法であって、
ウェブブラウザウインドウを提供するステップと、
ウェブブラウザウインドウ内に配置された少なくとも１つのアプリケーション出力ウインドウを提供するステップと、
ウェブブラウザとは独立して変更可能であり、アプリケーション出力ウインドウに対応するウインドウ属性情報を、アプリケーション出力ウインドウに結合された第１の仮想チャンネルを介して受け取るステップと、
アプリケーション出力データを、アプリケーション出力ウインドウに結合された第２の仮想チャンネルを介して受け取るステップと、
ウインドウ属性情報に従ってアプリケーション出力ウインドウを表示するステップと、
アプリケーション出力ウインドウ中でアプリケーション出力データを表示するステップとを含む方法。
【請求項２】
アプリケーション出力ウインドウに関連付けられたイベントを、ウェブブラウザとは独立して、監視し、応答するクライアントエージェントを提供するステップをさらに含む請求項１に記載の方法。
【請求項３】
クライアントエージェントにより受け取られた入力に呼応して、クライアントエージェントにより、ステップアプリケーション出力ウインドウをサイズ変更するステップをさらに含む請求項２に記載の方法。
【請求項４】
ウェブブラウザとは独立して、第１および第２の仮想チャンネルを確立するステップをさらに含む請求項１に記載の方法。
【請求項５】
未修正のアプリケーションプログラムにより生成されたアプリケーション出力データを受け取るステップをさらに含む請求項１に記載の方法。
【請求項６】
ウェブブラウザとは独立して第１および第２の仮想チャンネルを確立するクライアントエージェントを、ウェブブラウザウインドウ中に表示されるウェブページ中に埋め込まれたアプリケーションオブジェクトに呼応して実行するステップをさらに含む請求項１に記載の方法。
【請求項７】
アプリケーションオブジェクトの少なくとも１つの特性を修正するために、受け取られたウインドウ属性情報を用いるステップをさらに含み、アプリケーションオブジェクトの修正された特性は、アプリケーション出力ウインドウにおける対応する変化を引き起こす請求項６に記載の方法。
【請求項８】
ウェブブラウザウインドウ中に表示されたウェブページ中に埋め込まれたＡｃｔｉｖｅＸコントロールに呼応してクライアントエージェントを実行するステップをさらに含み、クライアントエージェントは、ウェブブラウザとは独立して、第１および第２の仮想チャンネルを確立する請求項１に記載の方法。
【請求項９】
ウェブブラウザウインドウ内に配置された複数のアプリケーション出力ウインドウを提供するステップをさらに含み、アプリケーション出力ウインドの各々は、別のアプリケーションサーバーから受け取られたアプリケーション出力データを表示する請求項１に記載の方法。
【請求項１０】
ウェブブラウザ中でアプリケーション出力データを表示するためのシステムであって、
ウェブブラウザウインドウと、
アプリケーション出力データを表示しウェブブラウザウインドウ内に配置される少なくとも１つのアプリケーション出力ウインドウと、
ウェブブラウザとは独立して変更可能であり、アプリケーション出力ウインドウに対応するウインドウ属性情報を受け取る第１の仮想チャンネルと、
アプリケーション出力データを受け取る第２の仮想チャンネルとを含み、アプリケーション出力データは、ウインドウ属性情報に従ってアプリケーション出力ウインドウ中で表示されるシステム。
【請求項１１】
アプリケーション出力ウインドウに関連付けられたイベントを、監視し、応答するクライアントエージェントをさらに含む請求項１０に記載のシステム。
【請求項１２】
クライアントエージェントは、クライアントエージェントにより受け取られた入力に呼応して、アプリケーション出力ウインドウをサイズ変更する請求項１１に記載のシステム。
【請求項１３】
クライアントエージェントは、ウェブブラウザとは独立して、第１および第２の仮想チャンネルを形成する請求項１１に記載のシステム。
【請求項１４】
アプリケーション出力データを生成する未修正のアプリケーションプログラムをさらに含む請求項１０に記載のシステム。
【請求項１５】
アプリケーション出力ウインドウに影響を与える少なくとも１つの特性を含み、ウェブブラウザウインドウ中に表示されるウェブページ中に埋め込まれたアプリケーションオブジェクトと、
アプリケーションオブジェクトに呼応して具体化され、第２の仮想チャンネルからウインドウ属性情報を受け取った時にアプリケーションオブジェクトの特性を修正できるクライアントエージェントとをさらに含む請求項１０に記載のシステム。
【請求項１６】
アプリケーションオブジェクトは、ＡｃｔｉｖｅＸコントロールである請求項１５に記載のシステム。
【請求項１７】
アプリケーション出力ウインドウは、ウェブブラウザウインドウの子ウインドウである請求項１０に記載のシステム。
【請求項１８】
ウェブブラウザウインドウ内に配置された複数のアプリケーション出力ウインドウをさらに含み、アプリケーション出力ウインドの各々は、別のアプリケーションサーバーから受け取られたアプリケーション出力データを表示する請求項１０に記載のシステム。
【請求項１９】
リモートサーバー上で実行されるアプリケーションプログラムにより生成されるアプリケーション出力データをローカルデスクトップ中で表示する方法であって、
ウェブブラウザを介して少なくとも１つのアプリケーションプログラムにアクセスするための要求を伝送するステップと、
アプリケーションプログラムにより生成されたアプリケーション出力データを表示するために少なくとも１つのアプリケーション出力ウインドウを提供するステップと、
アプリケーション出力ウインドウに結合された第１のチャンネルを介して、アプリケーション出力ウインドウに対応するウインドウ属性情報を受け取るステップと、
アプリケーション出力ウインドウに結合された第２のチャンネルを介してアプリケーション出力データを受け取るステップと、
第２のチャンネルを介して受け取られたアプリケーション出力データを、第１のチャンネルを介して受け取られたウインドウ属性情報に従って、アプリケーション出力ウインドウ中で表示するステップとを含む方法。
【請求項２０】
アプリケーション出力ウインドウに関連付けられたイベントを、ウェブブラウザとは独立して、監視し、応答するクライアントエージェントを提供するステップをさらに含む請求項１９に記載の方法。
【請求項２１】
クライアントエージェントにより受け取られた入力に呼応して、クライアントエージェントにより、アプリケーション出力ウインドウをサイズ変更するステップをさらに含む請求項２０に記載の方法。
【請求項２２】
ウェブブラウザとは独立して、第１および第２の仮想チャンネルを確立するステップをさらに含む請求項１９に記載の方法。
【請求項２３】
アプリケーション出力データを生成するアプリケーションプログラムは、未修正のアプリケーションプログラムに対応する請求項１９に記載の方法。
【請求項２４】
ウェブブラウザとは独立して第１および第２の仮想チャンネルを確立するクライアントエージェントを、ウェブブラウザウインドウ中に表示されるウェブページに埋め込まれたアプリケーションオブジェクトに呼応して実行するステップをさらに含む請求項１９に記載の方法。
【請求項２５】
アプリケーションオブジェクトの少なくとも１つの特性を修正するために、受け取られたウインドウ属性情報を用いるステップをさらに含み、アプリケーションオブジェクトの修正された特性は、アプリケーション出力ウインドウにおける対応する変化を引き起こす請求項２４に記載の方法。
【請求項２６】
ウェブブラウザにより表示されたウェブページ中に埋め込まれたＡｃｔｉｖｅＸコントロールに呼応してクライアントエージェントを実行するステップをさらに含み、クライアントエージェントは、ウェブブラウザとは独立して、第１および第２の仮想チャンネルを確立する請求項１９に記載の方法。
【請求項２７】
ウェブブラウザウインドウ内に配置された複数のアプリケーション出力ウインドウを提供するステップをさらに含み、アプリケーション出力ウインドの少なくともいくつかは、別のリモートサーバー上で実行されるアプリケーションプログラムにより生成されるアプリケーション出力データを表示する請求項１９に記載の方法。
【請求項２８】
リモートサーバー上で実行されるアプリケーションプログラムにより生成されるアプリケーション出力データをローカルデスクトップ中で表示するためのシステムであって、
少なくとも１つのアプリケーションプログラムへのアクセスを要求するウェブブラウザと、
アプリケーションプログラムに関連付けられたウインドウ属性情報を受け取る第１のチャンネルと、
アプリケーションプログラムにより生成されたアプリケーション出力データを受け取る第２のチャンネルと、
第１のチャンネルを介して受け取られたウインドウ属性情報に従って、第２のチャンネルを介して受け取られたアプリケーション出力データを表示する少なくとも１つのアプリケーション出力ウインドウとを含むシステム。
【請求項２９】
アプリケーション出力ウインドウに関連付けられたイベントを、監視し、応答するクライアントエージェントをさらに含む請求項２８に記載のシステム。
【請求項３０】
クライアントエージェントは、クライアントエージェントにより受け取られた入力に呼応して、アプリケーション出力ウインドウをサイズ変更する請求項に記載２９のシステム。
【請求項３１】
クライアントエージェントは、ウェブブラウザとは独立して、第１および第２のチャンネルを形成する請求項に記載２９のシステム。
【請求項３２】
アプリケーション出力データを生成する未修正のアプリケーションプログラムをさらに含む請求項２８に記載のシステム。
【請求項３３】
アプリケーション出力ウインドウに影響を与える少なくとも１つの特性を含み、ウェブブラウザウインドウ中に表示されるウェブページ中に埋め込まれたアプリケーションオブジェクトと、
アプリケーションオブジェクトに呼応して具体化され、第２のチャンネルからウインドウ属性情報を受け取った時にアプリケーションオブジェクトの特性を修正できるクライアントエージェントとをさらに含む請求項２８に記載のシステム。
【請求項３４】
アプリケーションオブジェクトは、ＡｃｔｉｖｅＸコントロールである請求項３３に記載のシステム。
【請求項３５】
アプリケーション出力ウインドウは、ウェブブラウザの子ウインドウである請求項２８に記載のシステム。
【請求項３６】
ウェブブラウザウインドウ内に配置された複数のアプリケーション出力ウインドウをさらに含み、アプリケーション出力ウインドの少なくともいくつかは、別のリモートサーバー上で実行されるアプリケーションプログラムにより生成されたアプリケーション出力データを表示する請求項２８に記載のシステム。
【請求項３７】
第１および第２のチャンネルは、通信リンク中の仮想チャンネルに対応する請求項に記載１９の方法。
【請求項３８】
ウェブブラウザウインドウを形成するステップと、
ウェブブラウザウインドウの境界内にアプリケーション出力ウインドウを再配置可能に配置するステップとをさらに含む請求項１９に記載の方法。
【請求項３９】
ウェブブラウザウインドウを形成するステップと、
ウェブブラウザウインドウの境界内でアプリケーション出力ウインドウを形成するステップと、
ローカルデスクトップ中で実行されるクライアントエージェントにより受け取られた入力に呼応して、ウェブブラウザウインドウの境界を越えてアプリケーション出力ウインドウを再配置するステップとをさらに含む請求項１９に記載の方法。
【請求項４０】
アプリケーション出力ウインドウは、ウェブブラウザとは独立して再配置される請求項３９に記載の方法。
【請求項４１】
リモートコンピューティングデバイス上で生成されたグラフィックデータを、ローカルデスクトップ中で表示する方法であって、
ブラウザにより形成された出力ウインドウ中にグラフィックデータを表示し、出力ウインドウがローカルデスクトップ中のブラウザウインドウの境界内に配置されるステップと、
ブラウザとは独立して、ブラウザウインドウの境界を越えて出力ウインドウを再配置するステップとを含む方法。
【請求項４２】
第１および第２のチャンネルは、通信リンク中の仮想チャンネルに対応する請求項２８に記載のシステム。
【請求項４３】
ウェブブラウザにより形成されたウェブブラウザウインドウをさらに含み、アプリケーション出力ウインドウは、ウェブブラウザウインドウの境界内に再配置可能に配置される請求項２８に記載のシステム。
【請求項４４】
ウェブブラウザにより具体化されたクライアントエージェントをさらに含み、クライアントエージェントは、クライアントエージェントにより受け取られた入力に呼応してウェブブラウザウインドウの境界を越えてアプリケーション出力ウインドウを再配置する請求項４３に記載のシステム。
【請求項４５】
アプリケーション出力ウインドウは、ウェブブラウザとは独立して再配置される請求項４４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（技術分野）
本発明は、通信ネットワークにおける情報の表示に関し、より詳細には、ウェブページ中での実行アプリケーションプログラムの出力を表示することに関する。
【背景技術】
【０００２】
（関連出願への相互参照）
本出願は、参照によりその全体が本明細書に組み込まれる、１９９８年５月２９日出願の同時継続米国特許出願第０９／０８６，８９８号、１９９７年５月１４日出願の同時継続米国特許出願第０８／８５５，９７７号、１９９９年２月１０日出願の同時継続米国特許出願第０９／２４７，２２０号、２００２年２月６日出願の同時継続米国特許出願第１０／０６８，４６１号、および２００２年１１月６日出願の同時継続米国特許出願第１０／２８８，８２１号への優先権を主張する。
【０００３】
（背景）
今日の急ペースの世界市場におけるビジネスは、職場内の固定位置ならびに移動位置のビジネスに不可欠なアプリケーションおよびデータへのアクセスをその従業員に提供することによりその生産性および収益性を懸命に改善しようとしている。移動ユーザーのための情報アクセスを促進する必要と組み合わされたウェブベースのコンピュータ処理の人気は、企業ポータルの採用に拍車をかけてきた。企業ポータルは、ユーザーに対するアプリケーション、データおよびコンテンツを統合し、個人化し、供給すると同時に、情報をより効率的に組織化し使用するための管理ツールを提供する会社ウェブサイトである。会社によっては、ポータルは、伝統的なデスクトップソフトウェアを、使用が容易で、便利で、遍在する（ユビキタス）仮想職場へのブラウザベースのアクセスに置き換えている。ポータルを実施する会社は、労働者生産性の改善およびそれらの情報科学インフラストラクチャにおけるより高い効率による速やかな投資回収の恩恵に浴している。
【０００４】
デスクトップソフトウェアを本当に置き換えるには、ポータルが情報資源の完全な補完を提供することが必要とされる。おそらくビジネスアプリケーションは、労働者がアクセスする必要のある最重要情報資源である。ビジネスアプリケーションも一般に大規模投資であり、しばしば競争に有利な利点あり、この利点はウェブベースシステムへの移行に際し失ってはならない。生産性の観点から、ユーザーが自分の作業をするためにブラウザとデスクトップとの間の切り替えを強制されないように、ポータルを介したアプリケーションアクセスが必要である。分割型ブラウザ／デスクトップシステムを用いると、様々なソースからの材料を位置指定および調整することがより困難である。ユーザーも一般に、デスクトップデバイスに拘束される。なぜならば、ブラウザを介してアクセスできないことがあるキーアプリケーションをデスクトップデバイスが提供するからである。
【０００５】
これらのビジネスドライバは、ポータル実施における既存および来たるべきアプリケーションを含む強制的な動機付けをもたらす。しかしながら、ウェブベース配信専用に開発されたアプリケーションはほとんどなく、しかもそれらに相当するデスクトップアプリケーションと比較して機能性が低下することがよくあった。ＨＴＭＬ、スクリプティング、ＪＡＶＡ（登録商標）およびその他の工業所有権により保護される手段を用いて既存のアプリケーションをリエンジニアリングすることによりそれらをポータルにおいて使用することが可能であるが、このアプローチは時間がかかりかつ高価であり、そしてポータルの実施を遅らせることがある。同様に、そのような実施は、機能性の低下を経験することがありおよび／または実現可能ではないことがある。なぜならば、アプリケーション実行の“ダウンロードおよびラン”モデルがあまりに資源集約的だからである。
【０００６】
従って、さほど効果的ではないことがありポータルの投資収益を希薄化する高価な開発努力に着手することなく、企業ポータルにおけるレガシーアプリケーションの効果的配備を可能にする方法およびシステムが望まれる。
【発明の開示】
【課題を解決するための手段】
【０００７】
（発明の要旨）
本発明は、ウェブ対応化（ｗｅｂ−ｅｎａｂｌｅｍｅｎｔ）技術をレガシーアプリケーションに適用することによりこれらの欠点を克服するものであり、これらのアプリケーションが、それらのユーザーがすでに習熟している同じユーザーインタフェースおよび完全な機能性と共にそれらのオリジナルな形態にとどまる一方で、そのような閲覧者が、ウェブページ内に表示されたアプリケーション出力ウインドウを介してアプリケーションと対話処理できるようにする。
【０００８】
１つの実施形態において、ウェブブラウザウインドウ内に配置された１つ以上のアプリケーション出力ウインドウ内のアプリケーション出力データを表示する方法が本発明により提供される。アプリケーション出力データは、ウェブ対応（ｗｅｂ−ｅｎａｂｌｅｄ）アプリケーションプログラムおよび／または未修正の非ウェブ対応アプリケーションプログラム（例えば、いわゆる“レガシーアプリケーション”）により生成できる。アプリケーション出力データのソースを提供するアプリケーションプログラムは種々のアプリケーションサーバー上に常駐することができ、これらの種々のアプリケーションサーバーからのアプリケーション出力データは、同じウェブブラウザウインドウ中の１つ以上のアプリケーション出力ウインドウ内に表示される。１つの局面において、アプリケーション出力ウインドウはウェブブラウザウインドウの子ウインドウである。１つの実施形態において、アプリケーション出力ウインドウは、ウェブブラウザウインドウの境界を越えて再配置可能である。別の局面において、アプリケーション出力ウインドウに関連付けられたウインドウ属性情報は、第１の仮想チャンネルを介して受け取られ、アプリケーション出力データ（例えば、グラフィックデータ）は、第２の仮想チャンネルを介して受け取られる。さらに別の局面では、ウェブブラウザウインドウ内で表示されるアプリケーション出力ウインドウのウインドウ属性情報は、ウェブブラウザウインドウを形成したウェブブラウザとは独立して変更可能である。本発明は、ウインドウ属性情報に応じてアプリケーション出力データをアプリケーション出力ウインドウ中で表示する。
【０００９】
１つの実施形態において、ウェブブラウザウインドウの閲覧者により入力されたサイズ変更イベントを検出し、呼応して影響を受けたアプリケーション出力ウインドウをサイズ変更するなどの、アプリケーション出力ウインドウに関連付けられたイベントを監視しこれに応答するクライアントエージェントが本発明により提供される。クライアントエージェントは、これらの機能をウェブブラウザとは独立して実行する。１つの実施形態において、クライアントエージェントは、ウェブブラウザウインドウ中に表示されるウェブページ中に埋め込まれたアプリケーションオブジェクト（例えば、ＡｃｔｉｖｅＸコントロール）に呼応して実行／具体化される。この実施形態において、クライアントエージェントは、アプリケーションオブジェクトの少なくとも１つの特性を修正するために、第２の仮想チャンネルを介して受け取られたアプリケーション出力ウインドウを用い、修正された特性は、関連付けられたアプリケーション出力ウインドウにおける対応する変化を引き起こす。さらなる局面において、クライアントエージェントは、第１および第２の仮想チャンネルをウェブブラウザとは独立して確立する。
【００１０】
このように、高価な開発およびユーザー訓練コストが本発明により回避され、ウェブアクセスを有する移動位置におけるオリジナルのレガシーアプリケーションの完全な機能性へのアクセスが提供される。
【００１１】
本発明は、添付請求項において詳細に指摘される。本発明の上述の利点およびさらなる利点は、添付図面と関連してなされる以下の説明を参照することによって一層理解できる。
【発明を実施するための最良の形態】
【００１２】
（詳細な説明）
アプリケーション出力データをリモートユーザーに表示することが可能なポータルおよびその他のウェブベースの実施は、好ましくは、サーバーベースのコンピューティングモデルを用いて実施される。サーバーベースのコンピューティングは、シングルポイントアプリケーション管理を介してポータルの全体効率を向上させるという点で、情報資源（例えば、アプリケーションプログラム）へのシングルポイントアクセスによってユーザー生産性を改善する企業ポータルに似ている。
【００１３】
サーバーベースのコンピューティングモデルにおいて、アプリケーション処理、管理、サポートおよび配備は典型的には１つ以上の中央サーバーに基づき、この中央サーバーは、ユーザーの表示デバイスから地理的に遠く離れていることがある。リモートユーザーは、キーストローク、マウスの動き、およびその他の入／出力動作をデータ通信ネットワーク（例えば、ＬＡＮ、ＭＡＮ、ＷＡＮ、インターネット、イントラネット等）を介してアプリケーションサーバーに送ることにより、これらのアプリケーションサーバー上でホストされる特定のアプリケーションと対話処理し、そこから画面／ウインドウ更新、ファイルおよびその他のデータを受け取る。全部ではないが、アプリケーション処理の多くはサーバー上で生じるので、ユーザーの表示デバイスは本質的に、シンクライアント（ｔｈｉｎ  ｃｌｉｅｎｔ）として動作し、従って、計算集約的（ｃｏｍｐｕｔｅ−ｉｎｔｅｎｓｉｖｅ）なアプリケーションであることがあるもののアプリケーション出力データを表示するための資源（例えば、処理パワー、不揮発性メモリー、揮発性メモリー等）をほとんど必要としない。さらに、ネットワークを横断するデータの全体量を減らすことにより、アプリケーション性能およびセキュリティにおける大きな改善が実現できる。
【００１４】
このサーバーベースのコンピューティングモデルを、アプリケーションプログラム（例えば、ポータル）のウェブベースの実施と結合することにより、ユーザーは、ホームコンピュータ、ラップトップコンピュータ、コンピュータワークステーション、ワイヤレスおよびハンドヘルド通信デバイス、および広範囲のプラットホーム上で走る情報機器を含む、ウェブ接続された事実上どのようなデバイス上のビジネスに不可欠なアプリケーションにもアクセス可能になる。デバイスおよびプラットホームの柔軟性により、移動作業者は、１つのデバイスから別のデバイスへシームレスに移動し、ビジネスに不可欠なレガシーアプリケーションの完全な機能性へのアクセスを含む首尾一貫した個人専用の情報セットを受け取ることが可能になる。
【００１５】
簡単に概観すると、ウェブに接続されたデバイスのユーザーは、ウェブサーバーの１つ以上のアプリケーションプログラムへのアクセスを要求する。ユーザーの証明書（ｃｒｅｄｅｎｔｉａｌ）を認証した後、ウェブサーバーは、ウェブサーバーに結合されたメモリーからユーザー特定およびアプリケーション特定パラメーターにアクセスする。その後ウェブサーバーは、これらのパラメーターを、要求されたアプリケーションプログラムをホストする１つ以上のアプリケーション実行サーバーに伝達し、アプリケーション実行サーバー上で動作しているソフトウェアプロセスは、伝達されたパラメーターを用いて、要求されたアプリケーションプログラムを実行および初期化する。このように、アプリケーションプログラムの各例は特定の要求ユーザーについて個人化される。これらの個人化されたアプリケーションプログラムをホストするアプリケーション実行サーバーの特定のネットワークアドレスは次にユーザーのデバイスへ送られ、このユーザーのデバイスが、通信リンクおよびそれをもってクライアント−サーバーセッションを確立する。
【００１６】
アプリケーション出力データがユーザーデバイスのデスクトップ上でシームレスに表示されることを保証するために、クライアント−サーバーセッションの間、実行アプリケーションプログラムに関連付けられたコマンド、イベント、グラフィックデータ、およびウインドウ属性情報が、ユーザーデバイスとアプリケーション実行サーバーとの間で通信される。アプリケーション出力データのシームレス表示は、ユーザーデバイスのローカルデスクトップ中での局所実行アプリケーションの提示および操作のされ方に一致するやり方でのユーザーデスクトップ上でのデータの提示を意味する。言い換えれば、あたかもリモートアプリケーションプログラムが局所的に実行されているかのように、ユーザーはそのアプリケーションプログラムにより生成されたアプリケーション出力データを閲覧しこれと対話処理する。
【００１７】
１つの実施形態において、アプリケーションプログラムの出力は、ユーザーのデバイスのウェブブラウザにより表示されたウェブページ内に置かれた１つ以上のアプリケーション出力ウインドウ中に表示される。さらなる実施形態において、アプリケーション出力ウインドウの属性が修正でき、その結果、アプリケーション出力ウインドウは、ウェブページの境界内で移動可能およびサイズ変更可能である。別の実施形態において、アプリケーション出力ウインドウは、最初にウェブページの境界内に現れ、その後、それらのウインドウがウェブページの境界外に配置され、従って、アプリケーション出力ウインドウがリモート実行アプリケーションよりはむしろ局所実行アプリケーションに対応している外観を与えるように移動可能になる。さらに別の実施形態において、アプリケーション出力ウインドウは、最初にウェブページの境界外に現れ、従って、局所実行アプリケーションに対応しているようにも見える。１つの実施形態において、アプリケーション出力ウインドウ中に表示されるアプリケーション出力およびアプリケーション出力ウインドウ自体の属性は、ユーザーデバイス上およびアプリケーション実行サーバー上のソフトウェアプロセスによって、最初にアプリケーションプログラムへのアクセスを提供したウェブサーバーまたはウェブブラウザの介入なしで通信および操作される。
【００１８】
より詳細には、図１について、ウェブおよびレガシーアプリケーション（例えば、ウェブベースの配信用に設計されていない未修正のアプリケーションプログラム）の完全な機能性へのウェブアクセスをリモートユーザーに提供できるサーバーベースのコンピューティングアーキテクチャ１００は、クライアントデバイス１１０（例えば、任意のデジタルデータ処理デバイス）、ウェブサーバー１１２、スタンドアローン型かそれともサーバーファーム内に集合されているかであり好ましくはファイアウォール１１８により保護されている１つ以上のアプリケーション実行サーバー１１４、およびこれらの要素が相互に通信できるようにするために必要な接続性を提供する通信ネットワーク１２０（例えば、インターネット、イントラネット等）を含む。
【００１９】
動作において、そして図２に関連して、クライアントデバイス１１０のユーザーは、ウェブサーバー１１２を介してアクセス可能な特定のウェブページコンテンツ１２４へのアクセスについての要求を発信するように、クライアントデバイス１１０上で動作しているブラウザ１２２に指示する（ステップ２１０）。１つの実施形態において、ユーザーは、ユニバーサルリソースロケータ（“ＵＲＬ”）アドレスをブラウザ１２２に入力する。ＵＲＬは、ウェブサーバー１１２によりホストされるウェブページコンテンツ１２４に関連付けられており、ブラウザ１２２は、適切なＵＲＬアドレスへのアクセスについての要求を伝送することにより応答する。ウェブサーバー１１２は、ユーザー証明書情報（例えば、ユーザーＩＤ、パスワード、グループ／プロジェクトメンバーシップ識別子等）を典型的に含んでいるアクセス要求を受け取り、サーバーファーム１１６またはウェブページコンテンツ１２４の少なくともいくらかを提供する個々のサーバー１１４に対しユーザーを認証する（ステップ２１２）。
【００２０】
ウェブサーバー１１２は、ユーザーが入力した証明書を前もって割り当てられた証明書と比較する認証プロセスにアクセスすることによりユーザーを認証する。１つの実施形態において、認証プロセスおよび前もって割り当てられた証明書のデータベースは、ウェブサーバー１１２上で保存および維持される。他の実施形態においては、前もって割り当てられた証明書は、サーバーファーム１１６中、個々のアプリケーション実行サーバー１１４上、および／またはインターネットまたは他のデータ通信ネットワークを介してウェブサーバー１１２に結合された管理サーバー（図示せず）上に保存できる。
【００２１】
アプリケーションセット１２６（例えば、ポータル管理者によりユーザーについて個人化されているアプリケーションプログラムのセット）へのアクセスを提供する企業ポータルにウェブページコンテンツ１２４が対応するシナリオにおいて、ウェブサーバー１１２は、ユーザーを認証する（ステップ２１２）ためおよび／またはポータルおよびユーザーに関連付けられたアプリケーションセット１２６情報をサーバーファーム１１６から得る（ステップ２１４）ためにウェブサーバー側スクリプトを呼び出す１つ以上のアプリケーションオブジェクト１２８（例えば、ＣＯＭ準拠ＪＡＶＡ（登録商標）オブジェクト、ＡｃｔｉｖｅＸオブジェクト、ＨＴＭＬタグ等）にアクセスする。アプリケーションオブジェクト１２８は、ユーザーおよび／またはポータルを介して提供されるアプリケーションセット１２６中の特定のアプリケーション１３０に関連付けられた特性も含む。ユーザー特性は、例えば、特定のアプリケーション１３０を識別するグループ／プロジェクト情報およびユーザーがグループ／プロジェクトの他のメンバーと協力できるようにするためにユーザーがクセスする必要があるデータを含む。アプリケーション特性は、例えば、アプリケーションセット１２６中のアプリケーション１３０の各々についてのユーザーの基本設定を含む。
【００２２】
アプリケーションオブジェクト１２８により呼び出されるスクリプトは、例えば、サーバーファーム１１６中の各サーバー１１４の監視および制御を行う中央管理プロセス（図示せず）を介して、ウェブサーバー１１２とサーバーファーム１１６との間のネットワークセッションを確立する。管理プロセスは、１つ以上のサーバーを選択し、このサーバーは、例えば、サーバーおよび／またはネットワーク性能に基づいてアプリケーションオブジェクト１２８により指定されたアプリケーションセット１２６中のアプリケーションプログラム１３０をホストする。所望のアプリケーションセット１２６は、サーバー１１４上でホストされる複数のアプリケーション１３０、１３２からアプリケーションセット１２６中の各アプリケーション１３０を選択／割り当てることによりシングルサーバー１１４によって完全に提供できる。代わりに、アプリケーションセット１２６’は、複数のサーバー１１４の各々がアプリケーションセット１２６’中の少なくとも１つのアプリケーションプログラムをホストする複数のサーバー１１４によって提供できる。サーバーファームおよびそれらの管理／運用のより詳細な説明は、国際特許出願第ＰＣＴ／ＵＳ０１／１４３１４号に見出すことができ、これは参照によりその全体が本明細書に組み込まれる。
【００２３】
管理プロセスは、アプリケーションオブジェクト１２８により呼び出されたクリプトに呼応して、選択／割り当てられたサーバー１１４上で１つ以上のサーバーエージェント１３４を起動する。サーバーエージェント１３４は、アプリケーションオブジェクト１２８により指定された特性に従ってアプリケーションセット１２６中のアプリケーションプログラム１３０各々の実行、初期化および対話処理をするソフトウェアプロセスである。１つの実施形態においては、アプリケーションセット１２６中の各アプリケーションプログラム１３０について１つのサーバーエージェント１３４がある。他の実施形態においては、すべてのアプリケーションプログラム１３０が同じサーバー１１４上でホストされる程度までアプリケーションセット１３０について単独サーバーエージェント１３４がある。さらに別の実施形態においては、各サーバー１１４について１つの単独サーバーエージェント１３４がある。次にサーバーエージェント１３４は、アプリケーションセット１２６中のアプリケーションプログラム１３０の出力ならびにアプリケーションセット１２６に関するその他の情報をウェブサーバー１１２に提供し、このウェブサーバーがその後アプリケーションセット情報をウェブページコンテンツ１２４にフォーマットする（ステップ２１６）。ウェブページコンテンツ１２４は、１つ以上のアプリケーションプログラム１３０からのアプリケーション出力データだけでなく、アプリケーションセット１２６中の１つ以上のアプリケーションプログラム１３０に対応するアプリケーションアイコンを含むことができる。１つの実施形態においては、アプリケーションプログラム１３０によって提供されるアプリケーション出力データは、ウインドウに納まるようにフォーマットされたグラフィックデータに対応し、このウインドウは、アプリケーションオブジェクト１２８の特性により当初指定された属性（例えば、ウェブページ上でのウインドウ位置、サイズ、スタイル、ｚ順番等）を呈する。
【００２４】
１つの例示的な実施形態において、そして図３に関連して、ブラウザ１２２は、ウェブページコンテンツ１２４を受け取ってブラウザウインドウ３２０内に表示し、このウインドウは、クライアントデバイス１１０に結合された表示デバイス上に表示されるクライアントデスクトップ３１０を形成する多くの考えられるグラフィカルユーザーインタフェース（“ＧＵＩ”）要素（例えば、メニュー３１２、ローカルウインドウ３１４等）を含む（ステップ２１８）。この特定の実施形態において、ウェブページコンテンツ１２４は、ブラウザ３２０により表示されたウェブ３２２ページ内に表示され、１つ以上のアプリケーションアイコン３２４および／または１つ以上のアプリケーション出力ウインドウ３２６を含み、これらは、アプリケーションセット１２６に関連付けられている。１つの実施形態において、１つ以上のアプリケーションオブジェクト１２８は、ウェブページ３２２のウェブページコンテンツ１２４の一部も形成し、従って、アプリケーション出力ウインドウ３２６の初期属性（サイズ、ｚ順序、位置）を設定できる。ウェブページ３２２上に表示されたアプリケーション出力ウインドウ３２６各々の初期の方位、サイズ、位置、およびｚ順序は、以下で説明されるように修正でき、そのため、アプリケーション出力ウインドウ３２６は、ウェブ３２２ページに関連しておよび／またはクライアントデスクトップ３１０に関連して種々の方位、サイズ、位置、およびｚ順序を呈する。
【００２５】
アプリケーションオブジェクト１２８は、ウェブページコンテンツ１２４を表示しているブラウザ１２２に、アプリケーション出力ウインドウ３２６がウェブ３２２ページ中の特定の位置に表示されるべきであることを示すどのようなデータ構成子であってもよい。アプリケーションオブジェクト１２８は、アプリケーション出力ウインドウ３２６における高さ、幅、境界スタイル、背景色またはパターンのような付加的情報を、どのアプリケーション１３０がウインドウ３２６中に表示してもよいか、どのくらいの頻度で出力表示が更新されるべきか、またはアプリケーション出力の表示を拡張するために有用なその他の付加的情報の証拠と共に含むことができる。
【００２６】
１つの例示的な実施形態においては、アプリケーションオブジェクト１２８は、ＨＴＭＬファイル中に埋め込まれたウインドウタグであり、そのようなタグの例を以下説明する。
【００２７】
（ＡｃｔｉｖｅＸ  ｔａｇ）
＜ｏｂｊｅｃｔ  ｃｌａｓｓｉｄ＝“ｃｌｓｉｄ：２３８ｆ６ｆ８３−ｂ８ｂ４−１１ｃｆ−８７７１−００ａ０２４５４１ｅｅ３”
ｄａｔａ＝“／ｉｃａ／ｄｉｒｅｃｔ．ｉｃａ“ＣＯＤＥＢＡＳＥ＝”／ｃａｂ／ｗｆｉｃａ．ｃａｂ”
ｗｉｄｔｈ＝４３６  ｈｅｉｇｈｔ＝２９５＞
＜ｐａｒａｍ  ｎａｍｅ＝“Ｓｔａｒｔ”ｖａｌｕｅ＝“Ａｕｔｏ”＞
＜ｐａｒａｍ  ｎａｍｅ＝“Ｂｏｒｄｅｒ”Ｖａｌｕｅ＝“Ｏｎ”＞
＜／ｏｂｊｅｃｔ＞
（Ｎｅｔｓｃａｐｅ  Ｐｌｕｇｉｎ  ｔａｇ）
＜ｅｍｂｅｄ  ｓｒｃ＝“ｈｔｔｐ：／／ｗｗｗ．ｃｉｔｒｉｘ．ｃｏｍ／ｉｃａ／ｄｉｒｅｃｔ．ｉｃａ”
ｐｌｕｇｉｎｓｐａｇｅ＝“ｈｔｔｐ：／／ｗｗｗ．ｃｉｔｒｉｘ．ｃｏｍ／ｐｌｕｇｉｎ．ｈｔｍｌ”
ｈｅｉｇｈｔ＝２９５  ｗｉｄｔｈ＝４３６  Ｓｔａｒｔ＝Ａｕｔｏ  Ｂｏｒｄｅｒ＝Ｏｎ＞
＜ｅｍｂｅｄ＞
（ＪＡＶＡ（登録商標）  ｔａｇ）
＜ａｐｐｌｅｔ  ｃｏｄｅ＝ＪＩＣＡ．ｃｌａｓｓ  ｗｉｄｔｈ＝４３６  ｈｅｉｇｈｔ＝２９５＞
＜ｐａｒａｍ  ｎａｍｅ＝Ａｄｄｒｅｓｓ  ｖａｌｕｅ＝“１２８．４．１．６４”＞
＜ｐａｒａｍ  ｎａｍｅ＝ＩｎｉｔｉａｌＰｒｏｇｒａｍ  ｖａｌｕｅ＝Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ  ７．０＞
＜ｐａｒａｍ  ｎａｍｅ＝Ｓｔａｒｔ  ｖａｌｕｅ＝Ａｕｔｏ＞
＜ｐａｒａｍ  ｎａｍｅ＝Ｂｏｒｄｅｒ  ｖａｌｕｅ＝Ｏｎ＞
＜／ａｐｐｌｅｔ＞
上記の各ケースにおいて、タグは、アプリケーションプログラム１３０から出力データを受け取るために、高さ２９５ピクセルおよび幅４３６ピクセルのアプリケーション出力ウインドウ３２６が描かれるべきであることを示している。各タグは、アプリケーションプログラム１３０が実行を自動的に開始すべきであること、およびアプリケーション出力がその中に表示されるアプリケーション出力ウインドウ３２６が境界線によって描かれるべきであることも指定している。ＡｃｔｉｖｅＸおよびＮｅｔｓｃａｐｅ  Ｐｌｕｇｉｎタグは、ディレクトリ“／ｉｃａ”中に置かれたファイル“ｄｉｒｅｃｔ．ｉｃａ”中で指定されたリモートアプリケーション１３０の特性を有している。ＪＡＶＡ（登録商標）タグは、リモートアプリケーション１３０の特性を直接指定する。上記の例において、実行されるアプリケーションプログラム１３０の名前だけでなく、アプリケーションプログラム１３０をホストしているサーバー１１４のアドレスも指定される。
【００２８】
１つの実施形態において、アプリケーションプログラム１３０は、ウェブベージ３２２の表示と実質的に同時に実行される。別の実施形態において、アプリケーションプログラム１３０は、ウェブページコンテンツ１２４をウェブサーバー１１２へ提供するステップの一部として、サーバーエージェント１１４によりそうすることを指示される場合に実行される。さらに別の実施形態においては、アプリケーションプログラムは、ユーザー指定された入力（例えば、ウェブ３２２ページ上のアプリケーションアイコン３２４の選択）のような信号に呼応して実行される。アプリケーションプログラム１３０の実行がひとたび開始されると、ブラウザ１２２は、クライアントデバイス１１０上でクライアントエージェント１３６を具体化する（ステップ２２０）。代わりに、クライアントエージェント１３６は、ウェブ３２２ページの表示と実質的に同時に、またはユーザー指定された入力に呼応して具体化される。
【００２９】
クライアントエージェント１３６は、クライアントデバイス１１０上で実行されサーバーエージェント１３４と相互作用するように構成されている１つ以上のソフトウェアプロセス、ブラウザ１２２、アプリケーション出力ウインドウ３２６、および／またはウェブサーバー１１２を含む。１つの実施形態において、クライアントエージェント１３６は、ブラウザ１２２の子プロセスとして生成される。他の実施形態においては、クライアントエージェント１３６は、ブラウザ１２２のピアプロセスまたはブラウザ１２２に関連付けられた動的にリンクされたライブラリである。１つの実施形態において、クライアントエージェント１３６は、ウェブ３２２ページ中に表示された各アプリケーション出力ウインドウ３２６について具体化される。別の実施形態において、単独クライアントエージェント１３６は、アプリケーションセット１２６中のアプリケーションプログラム１３０の特定のものに関連付けられた１つ以上のアプリケーション出力ウインドウ３２６について具体化される。さらに別の実施形態において、単独クライアントエージェント１３６は、ウェブページコンテンツ１２４に寄与した各サーバーエージェント１３４について具体化される。さらに別の実施形態においては、単独クライアントエージェント１３６は、アプリケーションセット１２６全体について具体化される。
【００３０】
ブラウザ１２２は、アプリケーションセット１２６中の特定のアプリケーションプログラム１３０に関連するアプリケーションオブジェクト１２８の特性を、それらの同じアプリケーションプログラムに関連付けられたクライアントエージェント１３６に渡す。加えて、ブラウザ１２２は、アプリケーション出力ウインドウ３２６についてのハンドルをクライアントエージェント１３６に渡すか、またはクライアントエージェント１３６は、アプリケーション出力ウインドウ３２６についてのハンドルを取得するためにブラウザ１２２に照会することができる。ブラウザ１２２によってもアプリケーションオブジェクト１２８によっても指定されないアプリケーション特性は、デフォルト値に設定できる。クライアントエージェント１３６は、ハードコード化された特定の特性デフォルトも有することもでき、またはクライアントエージェント１３６は、特性デフォルトを含むファイルにアクセスすることができる。
【００３１】
クライアントエージェント１３６は、アプリケーションプログラム１３０の名前およびアプリケーション実行サーバー１１４のアドレスを用い、両者は、通信リンクを確立し、サーバー１１４およびアプリケーションプログラム１３０に関連付けられたサーバーエージェント１３４とのクライアント−サーバーセッションを開始するために、アプリケーションオブジェクト１２８の特性の一部として提供される（ステップ２２２）。クライアントエージェント１３６は、アプリケーションオブジェクト１２８の特性のいくつかまたは全部を、任意の必要なデフォルト値と共にサーバーエージェント１３４へ渡す。代わりに、サーバーエージェント１３４は、後にウェブ３２２ページ中に表示されたウェブページコンテンツ１２４への寄与に先だって、アプリケーションオブジェクト１２８の特性のいくつかまたは全部をウェブサーバー１１２からすでに受け取っていることがある。特定の特性がサーバーエージェント１３４に渡されなければ、サーバーエージェント１３４は、もしその特性がそれに対するデフォルト値（例えば、ユーザーＩＤ）をサーバーエージェントが全く持っていない必要な特性であれば、その特性をクライアントエージェント１３６に要求するか、またはサーバーエージェント１３４は、特性（例えば、実行優先順位）についてのそれ自体のデフォルト値を提供することができる。
【００３２】
サーバーエージェント１３４は、クライアントエージェント１３６を認証するため、そして要求されたアプリケーションプログラム１３０を、もしそのプログラムが前もって開始されていなければ、実行するために、クライアントエージェント１３６から受け取られた特性を用いる。ひとたびアプリケーションプログラム１３０が実行され、クライアントエージェント１３６が認証されたら、アプリケーションプログラム１３０は、ブラウザ１２２またはウェブサーバー１１２の介在なしで、サーバーエージェント１３０を通してクライアントエージェント１３６と直接通信する。クライアントエージェント１３６は、アプリケーションプログラム１３０から出力データを受け取り、ウェブ３２２ページ中の適切なアプリケーション出力ウインドウ３２６中に出力データを表示する。クライアントエージェント１３６は、アプリケーション出力ウインドウ１３０に関連付けられたマウスクリックおよびキーボード入力のような入力イベントも検出し、どのようなそのようなイベントもサーバーエージェント１３４を介してアプリケーションプログラム１３０へ転送する。このタイプのクライアント−サーバーセッションは、ユーザーにより選択されるアプリケーションセット１２６中のアプリケーションプログラム１３０について繰り返され、かくして、ユーザーがアプリケーションセット１２６中の全資源と対話処理できるようになる（ステップ２２４）。
【００３３】
クライアント−サーバーセッションの間にクライアントエージェント１３６とサーバーエージェント１３４との間で交換されるデータは、入力イベントおよびアプリケーションプログラム１３０のグラフィックの出力データだけでなく、ウインドウ属性情報（例えば、ウインドウ位置、ｚ順序、サイズ、スタイル、色等）も含んでいる。アプリケーション出力ウインドウ３２６のウインドウ属性情報は、最初にウェブ３２２ページ中に埋め込まれたアプリケーションオブジェクト１２８によって指定される。例えば、アプリケーションオブジェクト１２８は、クライアント−サーバーセッションの間アプリケーション出力ウインドウ３２６のウインドウ属性を指定およびコントロールするＡｃｔｉｖｅＸコントロールを含むことができる。１つの実施形態において、アプリケーション出力ウインドウ３２６は、対応するＡｃｔｉｖｅＸコントロールと同じ寸法を呈する。
【００３４】
クライアントエージェント１３６は、ローカルアプリケーション出力ウインドウ１３０の初期ウインドウ属性を、クライアントデスクトップ３１０に関連する情報（例えば、サイズ、解像度等）と共にサーバーエージェント１３４に伝える。サーバーエージェント１３４は、そのサーバーデスクトップのサイズをクライアントデスクトップ３１０のサイズに一致させることにより、およびローカルサーバーウインドウのウインドウ属性をクライアントデスクトップ３１０上のアプリケーション出力ウインドウ３２６のウインドウ属性に一致させることによって応答する。クライアントデスクトップ３１０上のアプリケーション出力ウインドウ３２６およびサーバーデスクトップ上のサーバーウインドウは、従って、同じウインドウ属性を呈し、アプリケーション１３０により生成される同じグラフィック出力データを表示する。サーバーデスクトップが、サーバーのビデオメモリー中に含まれているオフスクリーン面かサーバー１１４に連結された表示デバイス上に表示されるオンスクリーン面のどちらか一方に対応できることに留意されたい。
【００３５】
クライアントエージェント１３６により検出され次にサーバーエージェント１３４へ伝達される入力イベントを入力することにより、クライアントデバイス１１０のユーザーは、クライアント−サーバーセッションの間に、アプリケーション出力ウインドウ３２６の移動、サイズ変更、および／またはｚ順序あるいは他の初期ウインドウ属性の変更ができる。サーバーエージェント１３４は、入力イベントに整合するようにそのデスクトップおよび／またはウインドウを一致させ、次に、入力イベントに対応する更新されたグラフィック出力データおよびウインドウ属性情報を、アプリケーション出力ウインドウ３２６がサーバー１１４上のウインドウと一致するようにアプリケーション出力ウインドウを更新する指示と共にクライアントエージェント１３６に伝送する。
【００３６】
例えば、クライアントデバイス１１０のユーザーが、アプリケーション出力ウインドウ３２６の１つをアプリケーションオブジェクト１２８により当初指定されたものから（アプリケーション出力ウインドウ３２６の境界をマウスでクリックし所望の位置／サイズまでドラッグするなどにより）サイズ変更すると、クライアントエージェント１３６は、マウス操作により生成された入力イベントを検出してこれをサーバーエージェント１３４へ伝え、このサーバーエージェントが同じサイズ変更イベントをサーバー１１４のオンスクリーンまたはオフスクリーン面において行う。次に、サーバーエージェント１３４は、リペイントおよびサイズ変更コマンドメッセージを、更新されたグラフィックの出力データおよびウインドウ属性情報と共にクライアントエージェント１３６に送る。応答して、クライアントエージェント１３６は、サイズ変更イベント（例えば、上記で論じたＡｃｔｉｖｅＸコントロール）により影響を受けた適切なアプリケーションオブジェクト１２８を修正し、その結果、対応するアプリケーション出力ウインドウ３２６がサイズ変更され、更新されたグラフィック出力データがアプリケーション出力ウインドウ３２６の境界内でペイントされる。
【００３７】
従って、本発明は、ブラウザウインドウ３２０の境界内でアプリケーション出力ウインドウ３２６が移動、サイズ変更等できるようにアプリケーション出力ウインドウ３２６のウインドウ属性が修正されることを可能にする。図４に関連して、そして非限定的な例として、アプリケーション出力ウインドウＢ’４１０は、上述の方法論を用いてサイズ変更してアプリケーション出力ウインドウＢ”４２０を形成することができ、このウインドウは、アプリケーション出力ウインドウＦ４３０と重なっている（従って、別のｚ順序を呈する）。代わりに、アプリケーション出力ウインドウ３２６を移動またはサイズ変更して、ブラウザウインドウ３２０を越えてまたは完全に外部に拡張することができる。非限定的な例として、そして図５に関連して、アプリケーション出力ウインドウＪ５１０は、ブラウザウインドウ３２０の境界内にあるのに対して、アプリケーション出力ウインドウＫ５２０は、ブラウザウインドウ３２０の境界を越えて広がっており、アプリケーション出力ウインドウＬ５３０は、ブラウザウインドウ３２０の完全に外部にある。アプリケーション出力ウインドウがクライアントデスクトップ３１０中の他の要素に関して可変ｚ順序を呈し得ることに留意されたい。例えば、ローカルウインドウ５４０は、ブラウザウインドウ３２０のｚ順序とアプリケーション出力ウインドウＬ５３０のｚ順序との間のｚ順序を呈している。この実施形態において、クライアントエージェント１３６は、クライアントデバイス１１０のオペレーティングシステムに、アプリケーション出力ウインドウ３２６のウインドウ属性を確立したウェブ３２２ページ中に埋め込まれたアプリケーションオブジェクト１２８の特性を最初に修正する必要なく、サーバーエージェント１３４から受け取られたコマンドメッセージに呼応して、要求されたアプリケーション出力ウインドウ３２６を描くように指示する。
【００３８】
１つの実施形態において、アプリケーション出力ウインドウ３２６に影響を与える各入力イベントは、サーバーエージェント１１４に転送され、このサーバーエー人とにより処理され、次にこのサーバーエージェントは、クライアントエージェント１３６に、アプリケーション出力ウインドウ３２６中での対応する変化を生じさせるように指示する。別の実施形態において、１つ以上の入力イベントタイプ（例えば、ウェブ３２２ページ上の別のグリッド位置への、アプリケーション出力ウインドウ３２６の移動を目的とするクリック＆ドラッグマウス操作）は、クライアントエージェント１３６により完全に処理されて、サーバーエージェント１３４へ報告されず、その場合アプリケーション出力ウインドウ３２６内で表示されるグラフィック出力データは不変のままである。
【００３９】
より詳細には、および図６に関連して、クライアントエージェント１３６は、モニタプロセス６１０、コマンドプロセス６２０、メッセージ受け取りプロセス６３０、およびメッセージ伝送プロセス６４０を含んでいる。別の実施形態においては、各プロセス６１０、６２０、６３０、６４０は、他のプロセスとは独立して動作する別個に機能するコードセグメントである。例えば、メッセージ受け取りプロセス６３０およびコマンドプロセス６２０は、別個のスレッドとして実施でき、このスレッドは、名前付きパイプまたは共有メモリーを介して互いに通信する。共通データセットの使用により、メッセージ受け取りプロセス６３０およびメッセージ伝送プロセス６４０を同期させることが可能になる。
【００４０】
メッセージ受け取りプロセス６３０は、クライアント−サーバーセッションの間にクライアントエージェント１３６とサーバーエージェント１３４との間の接続性を提供する通信リンクを介してサーバーエージェント１３４からグラフィックデータ、ウインドウ属性情報、およびコマンドを受け取る。通信リンクは、好ましくは、第１の仮想チャンネル６６０および第２の仮想チャンネル６７０を含んでいる。コマンド、イベント、およびウインドウ属性情報は、第１の仮想チャンネル６６０を介してクライアントエージェント１３６とサーバーエージェント１３４との間を送られるのに対して、アプリケーション出力ウインドウ３２６のグラフィックコンテンツに対応するグラフィックデータは、第２の仮想チャンネル６７０を介して送られる。メッセージ受け取りプロセス６３０は、サーバーエージェント１３４から受け取られたコマンド、ウインドウ属性、およびグラフィックデータをコマンドプロセス６２０に知らせ、コマンドプロセス６２０はこのコマンドをさらに処理する。
【００４１】
１つの実施形態において、コマンドプロセス６２０は、クライアントオペレーティングシステム６５０に、サーバーエージェント１３４により指定されたウインドウ属性に従って影響を受けたアプリケーション出力ウインドウ３２６を形成および／または修正することを指示することによりサーバーエージェント１３４から受け取られたコマンドを処理する。コマンドプロセス６２０は、クライアントオペレーティングシステム６５０に、適切なアプリケーション出力ウインドウ３２６中にサーバーエージェント１３４から提供されたグラフィックデータを表示することも指示する。１つの実施形態において、コマンドプロセス６２０は、ＧＤＩコマンドを発行することによりクライアントデスクトップ３１０中のアプリケーション出力ウインドウ３２６への変更を実施する。他の実施形態において、コマンドプロセス６２０は、関連付けられたグラフィックスサブシステムへ直接的またはグラフィックスＡＰＩを介してコマンドを発行する。
【００４２】
コマンドプロセス６２０は、アプリケーション出力ウインドウ３２６に影響を与える変化を検出するために、モニタプロセス６１０にクライアントデスクトップ３１０を定期的に監視することも指示する。１つの実施形態において、モニタプロセス６１０は、前もって決定されたポーリング間隔でクライアントデスクトップ３１０に関連する情報を返すことをクライアントオペレーティングシステム６５０に指示する。他の実施形態において、モニタプロセス６１０は、アプリケーション出力ウインドウに影響を与える変化を検出するために、クライアントオペレーティングシステム６５０により維持されるメッセージキューを監視する。モニタプロセス６１０は、検出されたデスクトップ変化のいくつかまたは全部を、さらに処理するためにコマンドプロセス６２０へ伝える。
【００４３】
１つの実施形態において、コマンドプロセス６２０は、メッセージ伝送プロセス６４０に、モニタプロセス６１０によって検出されたすべての変化を第１の仮想チャンネルを介してサーバーエージェント１３４に伝送することを指示する。別の実施形態において、コマンドプロセス６２０は、メッセージ伝送プロセス６４０に、グラフィックデータおよび／またはアプリケーション出力ウインドウ３２６のウインドウ属性にのみ影響を与える変化のような検出された変化のサブセットを伝送することを指示する。サーバーエージェント１３４は、検出された変化を、検出されたこの変化を引き起こしたコマンドプロセス６２０からのどのようなコマンドおよびクライアントデバイス１１０のユーザーによりなされたどのような入力イベントとも共に受け取る。次にサーバーエージェント１３４は、検出された変化に対応するために、そのローカルデスクトップを修正し、関連付けられたコマンド、ウインドウ属性、およびグラフィックデータを、クライアントのメッセージ受け取りプロセス６３０に返送する。このように、本発明により、クライアントおよびサーバーデスクトップにおいて共通なアプリケーション出力ウインドウ３２６のようなデスクトップ要素がロックステップにとどまることが保証される。
【００４４】
クライアントエージェント１３６のコマンドプロセス６２０は、クライアントおよびサーバーデスクトップにおける類似／共通要素が、共通ウインドウリストを維持することによりロックステップにとどまることを保証する。共通ウインドウリストは、クライアントデスクトップ３１０中の各ウインドウについておよびサーバーデスクトップ中の各対応するウインドウについてのウインドウ属性情報を含んでいる。クライアントデバイス１１０上で複数のクライアントエージェントが実行されている実施形態においては、単独クライアントエージェント１３６のコマンドプロセス６２０は、共通ウインドウリストを維持することについての一次責任を有している。他のクライアントエージェントが動作中のままである間に、単独クライアントエージェント１３６が終了すれば、残りのクライアントエージェントは、共通ウインドウリストを維持するために、別の一次クライアントエージェントを選出する。
【００４５】
本発明は、クライアントとサーバーエージェントとの間で伝送されるグラフィックデータ量を低減するために、参照により本明細書に組み込まれる共同所有の国際特許出願第ＷＯ０１／９２９７３号に記載される手法を好ましくは用いることにより、クライアント−サーバーセッションの性能も拡張する。１つの実施形態において、本発明は、データを、クライアントエージェント１３６とサーバーエージェント１３４との間で伝送されるプロトコルストリーム内で反復する比較的小さい表現にエンコードする。このように、本発明は、伝送されなければならない各個別の要素のサイズを最小化し、反復性のエンコードされたデータ上でより効率的に動作する圧縮アルゴリズムがより高い圧縮効率を実現できるようにプロトコルストリーム内のデータの反復可能性を増大させる。本発明は、この強化された圧縮を実現するために、以下のものを含む多くの手法を用いる。すなわち、以前に発行されたコマンドに取って代わる後に発行されたコマンドについてのコマンドキューのスキャニング、以前クライアント−サーバーセッションの間に遭遇したデータの圧縮を改善するディスクキャッシング法、両方のエンドポイントおよび／または関連付けられたストリップ（すなわち、共通な角度を呈する連続したピクセルの連続）の角度を送ることを回避するために量子化された領域を用いる相対座標の伝送、およびクライアント−サーバーセッションの間に性能を強化するためのオフスクリーンの操作である。本発明は、速いサーバーと比較的遅いネットワークまたはクライアントデバイスとの間に性能の不一致がある場合に遭遇するオーバースクロール問題の頻度も低減させる。
【００４６】
本発明の特定の実施形態を説明してきたので、本発明の概念を含む他の実施形態を用い得ることは当業者には明白になるであろう。従って、本発明は特定の実施形態に限定されるべきでなく、むしろ以下の請求項の精神および範囲によってのみ限定されるべきである。
【図面の簡単な説明】
【００４７】
【図１】図１は、データ通信ネットワークを介して接続されたクライアントデバイス、ウェブサーバーおよびサーバーファームを図式的に例示しており、クライアントデバイス上のクライアントエージェントおよびサーバーファーム中の１つ以上のサーバーエージェントは本発明の実施形態に従って動作する。
【図２】図２は、本発明の実施形態に従ってクライアントエージェントおよびウェブサーバーにより実行されるステップを例示する高レベルフローチャートを提示する。
【図３】図３は、クライアントデスクトップの例示的な画面表示であり、クライアントデスクトップのウェブブラウザウインドウ内で表示されるアプリケーション出力ウインドウは、本発明の実施形態に従って形成される。
【図４】図４は、図３のアプリケーション出力ウインドウの画面表示であり、アプリケーション出力ウインドウは、本発明の実施形態に従ってウェブブラウザウインドウ内で移動および／またはサイズ変更できることを例示している。
【図５】図５は、図３のアプリケーション出力ウインドウの画面表示であり、アプリケーション出力ウインドウは、本発明の実施形態に従ってウェブブラウザウインドウの境界内でおよび／または境界を越えて表示できることならびに可変のｚ順番（ｚ−ｏｒｄｅｒｓ）を呈し得ることを例示している。
【図６】図６は、本発明の実施形態に従って、クライアントエージェントのプロセスおよびクライアントエージェントとサーバーエージェントとの間で転送されるデータのタイプを図式的に例示している。
【図１】
2005517254.tif 000003
【図２】
2005517254.tif 000004
【図３】
2005517254.tif 000005
【図４】
2005517254.tif 000006
【図５】
2005517254.tif 000007
【図６】
2005517254.tif 000008
【国際調査報告】
2005517254.tif 000009