(57)【要約】本発明は、クライアントとホストシステムの間のネットワークベースのアプリケーションを適合化し、診断し、最適化し、対処する。構成情報を含むネットワークベースのアプリケーションの一部またはすべてはクライアント上にインストールされていても良い。コンポーネントと構成情報はネットワークベースのアプリケーションが実行されるときにインストールされても良い。或いはまた、コンポーネントと構成情報はネットワークベースのアプリケーションに先立ってインストールされても良い。ネットワークベースのアプリケーションを起動するためには、ユーザはクライアント経由でホストシステムへアプリケーション要求を送出する。ホストシステムはプログラムコードをクライアントへ送る。プログラムコードの実行により、クライアントはホストシステムとのセッションの確立を試み、ネットワークベースのアプリケーションのための構成情報を決定する。セッションが確立し構成情報が決定されると、クライアントはネットワークベースのアプリケーションを起動する。
2004519747.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを通じてサーバからクライアントへ供給されるアプリケーションを最適化する方法であって、
前記クライアントに第１のコードセグメントを提供するステップと、
前記第１のコードセグメントに基づいて、アプリケーションの実行環境の複数のパラメータを特定するステップと、
前記の複数のパラメータを、前記サーバに提供するステップと、
前記の複数のパラメータに基づいて、アプリケーションを構成するための第２のコードセグメントを決定するステップとを、
含むことを特徴とする方法。
【請求項２】
前記第２のコードセグメントに基づいて、アプリケーションを構成するステップを、さらに含むことを特徴とする請求項１記載の方法。
【請求項３】
構成に基づいて、アプリケーションを自動的に起動するステップを、さらに含むことを特徴とする請求項２記載の方法。
【請求項４】
第１のコードセグメントを提供するステップは、Ｊａｖａ（登録商標）のサポートを判別するためにＪａｖａＳｃｒｉｐｔを提供することを含むことを特徴とする請求項１記載の方法。
【請求項５】
複数のパラメータを特定するステップは、前記クライアントのハードウェア構成を判別することを含むことを特徴とする請求項１記載の方法。
【請求項６】
複数のパラメータを特定するステップは、前記クライアントのオペレーティングシステムを判別することを含むことを特徴とする請求項１記載の方法。
【請求項７】
複数のパラメータを特定するステップは、前記クライアントにインストールされたブラウザの構成を示す情報を判別することを含むことを特徴とする請求項１記載の方法。
【請求項８】
複数のパラメータを特定するステップは、前記クライアント及び前記サーバ間の前記ネットワークにおける経路の状態を判別することを含むことを特徴とする請求項１記載の方法。
【請求項９】
複数のパラメータを特定するステップは、前記クライアント及び前記サーバ間の通信上のセキュリティ制限を判別することを含むことを特徴とする請求項１記載の方法。
【請求項１０】
複数のパラメータを特定するステップは、アプリケーションのユーザの身元を示す情報を判別することを含むことを特徴とする請求項１記載の方法。
【請求項１１】
ネットワークベースのアプリケーション用のクライアントであって、
アプリケーションを起動するリクエストを受信する手段と、
アプリケーションの実行環境の複数のパラメータを特定する手段と、
特定されたアプリケーションの実行環境の複数のパラメータを提供する手段と、
特定された実行環境の複数のパラメータに基づいて、アプリケーションを構成する手段とを、
備えたことを特徴とするクライアント。
【請求項１２】
アプリケーションの構成に基づいて、アプリケーションに関連したコンテンツを出力する手段を、さらに備えたことを特徴とする請求項１１記載のクライアント。
【請求項１３】
ネットワークベースのアプリケーション用のサーバであって、
アプリケーションを起動するリクエストを受信する手段と、
アプリケーションの実行環境を特定する第１のコードを提供する手段と、
前記第１のコードに基づいて特定されたアプリケーションの実行環境の複数のパラメータを受信する手段と、
特定された複数のパラメータに基づいて、アプリケーションを構成するための第２のコードを決定する手段とを、
備えたことを特徴とするサーバ。
【請求項１４】
アプリケーションの構成に準拠したアプリケーション用コンテンツを提供する手段を、さらに備えたことを特徴とする請求項１３記載のサーバ。
【請求項１５】
ネットワークを通じてサーバからクライアントへ供給されるアプリケーションを最適化する方法を実行するプログラムコードを含んだコンピュータ可読媒体であって、前記方法は、
前記クライアントに第１のコードセグメントを提供するステップと、
前記第１のコードセグメントに基づいて、アプリケーションの実行環境の複数のパラメータを特定するステップと、
特定されたアプリケーションの実行環境の複数のパラメータを、前記サーバに提供するステップと、
前記の複数のパラメータに基づいて、アプリケーションを構成するための第２のコードセグメントを決定するステップとを、
含むことを特徴とするコンピュータ可読媒体。
【請求項１６】
前記方法は、前記第２のコードセグメントに基づいて、アプリケーションを構成するステップを、さらに含むことを特徴とする請求項１５記載のコンピュータ可読媒体。
【請求項１７】
クライアントに提供する第１のコードセグメントは、そのクライアントがＪａｖａＳｃｒｉｐｔをサポートしているかどうかを判別することを含むことを特徴とする請求項１５記載のコンピュータ可読媒体。
【請求項１８】
前記方法は、構成に基づいてアプリケーションを自動的に起動するステップを、さらに含むことを特徴とする請求項１５記載のコンピュータ可読媒体。
【請求項１９】
複数のパラメータを特定するステップは、前記クライアントのハードウェア構成を判別することを含むことを特徴とする請求項１５記載のコンピュータ可読媒体。
【請求項２０】
複数のパラメータを特定するステップは、前記クライアントのオペレーティングシステムを判別することを含むことを特徴とする請求項１５記載のコンピュータ可読媒体。
【請求項２１】
複数のパラメータを特定するステップは、前記クライアントにインストールされたブラウザの構成を示す情報を判別することを含むことを特徴とする請求項１５記載のコンピュータ可読媒体。
【請求項２２】
複数のパラメータを特定するステップは、前記クライアント及び前記サーバ間の前記ネットワークにおける経路の状態を判別することを含むことを特徴とする請求項１５記載のコンピュータ可読媒体。
【請求項２３】
複数のパラメータを特定するステップは、前記クライアント及び前記サーバ間の通信上のセキュリティ制限を判別することを含むことを特徴とする請求項１５記載のコンピュータ可読媒体。
【請求項２４】
複数のパラメータを特定するステップは、アプリケーションのユーザの身元を示す情報を判別することを含むことを特徴とする請求項１５記載のコンピュータ可読媒体。
【発明の詳細な説明】
【０００１】
発明の記述
発明の分野
本発明は、ネットワークベースのアプリケーションに関する。特に、ネットワークベースのアプリケーションの適合化、診断、最適化、及び対処に関する。
【０００２】
発明の背景
最近、インターネット等のネットワークを介して、データを通信及び共有するネットワークベースのアプリケーションが、普及してきた。ネットワークベースのアプリケーションにより、ユーザは、インターネットのようなネットワークを介して、互いに接続される。例えば、オンライン会議のようなネットワークベースのアプリケーション、及び、アプリケーション・シェアリングが、企業及び組織に普及してきた。
【０００３】
しかしながら、このようなネットワークベースのアプリケーションは、一般には、ユーザのコンピュータにすべてがインストールされているわけではない。ユーザは、ネットワークベースのアプリケーション用に、何度も、コンポーネントの一部又は全部をダウンロードして構成する必要がある。残念ながら、ネットワークベースのアプリケーションをダウンロードして構成するのは、難しい作業である。例えば、ユーザのコンピュータのハードウェア構成及びオペレーティングシステムが、ネットワークベースのアプリケーションの性能に影響することがある。また、ウェブブラウザ、その設定、クライアントと１つ又はそれ以上のサーバとの間のネットワーク経路、及びファイアウォールのようなセキュリティ機構も、ネットワークベースのアプリケーションの実行に影響する。従って、数々の要因が関係するため、ネットワークアプリケーションを最適化するのは、難しくて複雑なこととなりうる。
【０００４】
残念なことに、複雑さと困難さとにより、ネットワークベースのアプリケーションの性能が低下することがある。例えば、応答時間が遅くなる。さらに、ネットワークベースのアプリケーションの問題では、診断及び修正が難しいことがある。従って、ネットワークベースのアプリケーションの適合化、診断、最適化、及び対処の方法及びシステムが必要とされている。
【０００５】
発明の概要
これらの欠点及び他の欠点を克服するために、ネットワークベースのアプリケーションの適合化、診断、最適化、及び対処の方法及びシステムが、提供される。本発明の原理によれば、ネットワークベースのアプリケーションは、ユーザの装置、及びアプリケーション実行中に利用されるサーバで、カスタマイズされ、適合化され、及び／又は調整されて、ユーザの負担を最適化する。
【０００６】
本発明の一実施形態によると、ネットワークを通じてサーバからクライアントへ供給されるアプリケーションを最適化する方法は、前記クライアントに第１のコードセグメントを提供するステップと、前記第１のコードセグメントに基づいて、アプリケーションの実行環境の複数のパラメータを特定するステップと、特定されたアプリケーションの実行環境の複数のパラメータを、前記サーバに提供するステップと、前記の複数のパラメータに基づいて、アプリケーションを構成するための第２のコードセグメントを決定するステップとを、含んでいる。
【０００７】
本発明の他の実施形態によると、ネットワークベースのアプリケーション用のクライアントは、アプリケーションを起動するリクエストを受信する手段と、アプリケーションの実行環境の複数のパラメータを特定する手段と、特定されたアプリケーションの実行環境の複数のパラメータを提供する手段と、特定された実行環境の複数のパラメータに基づいて、アプリケーションを構成する手段とを、備えている。
【０００８】
本発明のさらに別の実施形態によると、ネットワークベースのアプリケーション用のサーバは、アプリケーションを起動するリクエストを受信する手段と、アプリケーションの実行環境を特定する第１のコードを提供する手段と、前記第１のコードに基づいて特定されたアプリケーションの実行環境の複数のパラメータを受信する手段と、特定された複数のパラメータに基づいて、アプリケーションを構成するための第２のコードを決定する手段とを、備えている。
【０００９】
本発明の原理によると、問題点、あるいは、アプリケーションについてのユーザの体験にマイナスの影響を及ぼしうる他の環境が、診断される。例えば、本発明で対処される問題には、以下のものがある。すなわち、ネットワーク性能の問題、ユーザのハードウェア構成の問題、ブラウザ構成の問題のようなユーザのソフトウェア・インタフェースの問題、ファイアウォール、及びアプリケーション・プロキシ等である。また、本発明の原理に従って、可能な対応策が策定されてもよい。
【００１０】
また、特別なセキュリティ上の許可、及び、アプリケーションを初期化、構成、又は使用するのに必要とされるユーザのその他の決定が、最小化されてもよい。本発明により、必要であれば、電子メールアドレス、電話番号、ファックス番号等のサポート情報を事前にユーザに提供して、アプリケーションの障害を検出することにより、ユーザへの顧客サービスの最終的な提供、又は技術サポートが支援されるようになる。さらに、本発明は、情報を収集及び集約してネットワークベースのアプリケーションを改良できるようにしている。
【００１１】
本発明のさらなる利益及び利点は、一部が以下の説明に明記され、一部がその説明から明らかであり、本発明の実施により理解されるであろう。本発明の利点は、添付の特許請求の範囲で特に指摘された要素及び組み合わせによって、実現され達成されることになる。
【００１２】
上述の一般的説明及び以下の詳細な説明は、例示的なものであり、説明のためのみのものであり、特許請求された本発明を制限するものではないことが、理解されるべきである。
【００１３】
詳細な説明
本発明の実施形態について記述する。添付の図面に、その例が示されている。図面全体に亘って、可能なときには必ず、同一の参照番号は同一又は同様の部分を示すのに用いられる。添付の図面は、本明細書に組み込まれて、本明細書の一部を成し、本発明のいくつかの実施形態を示し、記述内容とともに本発明の原理を説明するためのものである。
【００１４】
本発明の原理によれば、オンライン会議、オンラインミーティング、ウェブセミナー、及びアプリケーション・シェアリングのアプリケーション等のネットワークベースのアプリケーションが、クライアント及びホストシステムに関する条件に基づいて、適合化、診断、最適化、及び対処される。ネットワークベースのアプリケーションのコンポーネントの一部又は全部が、構成情報を含めて、クライアント上に事前にインストールされていてもよい。その代わりに、コンポーネント及び構成情報が、ネットワークベースのアプリケーションの実行に伴って、クライアント上に同時にインストールされてもよい。
【００１５】
本発明の原理によれば、ユーザが、ネットワークベースのアプリケーションを起動してもよい。ネットワークベースのアプリケーションを起動するために、ユーザは、クライアントを通じてホストシステムへと、アプリケーションのリクエストを送信する。ホストシステムは、プログラムコードをクライアントへ送信する。動作の際、クライアントは、ホストシステムとセッションを確立し、ネットワークベースのアプリケーションの構成情報を判別する。セッションを確立して構成情報を判別すると、クライアントは、ネットワークベースのアプリケーションを起動する。
【００１６】
図１に、本発明の原理に対応したネットワークベースのアプリケーションの全体構成を示す。特に、クライアント１００、ネットワーク１０４、及びホストシステム１０８が図示されている。クライアント１００により、ユーザは、ネットワーク１０４を介してホストシステム１０８が供給しているネットワークベースのアプリケーションに、アクセス可能となる。クライアント１００は、ネットワークベースのアプリケーションを実行するために、ハードウェア及びソフトウェアを組み合わせて用いて、構築されてもよい。例えば、クライアント１００は、Ｗｉｎｄｏｗｓ（登録商標） ＮＴ、ＭａｃＩｎｔｏｓｈ ＯＳ、又はＵｎｉｘ（登録商標）を実行するパーソナルコンピュータとして実装されてもよい。また、クライアント１００は、パーソナル・デジタル・アシスタント、ラップトップ、ウェブ対応携帯電話機等のような他の機器として実装されてもよい。ネットワーク１０４にアクセス可能なあらゆる種類の機器が、本発明の範囲に入っている。
【００１７】
クライアント１００は、接続１０２を通じてネットワーク１０４に接続されている。接続１０２は、専用線接続、ダイアルアップ接続、デジタル加入者線、及びケーブル等の幅広い技術を用いて実装されてもよい。さらに、接続１０２は、ＨｏｍｅＲＦ（商標）及びＢｌｕｅｔｏｏｔｈ（商標）等のワイヤレス技術を用いて実装されてもよい。また、接続１０２には、アプリケーション・プロキシと、ルータ、スイッチ、及びハブ等のネットワーク要素と、ファイアウォールと、その他のネットワーク・セキュリティ機構等が、含まれていてもよい。ネットワーク１０４はクライアント１００及びホストシステム１０８間の接続を提供している。ネットワーク１０４は、クライアント１００及びホストシステム１０８間の通信をルーティングする様々なノード（図示せず）を、備えていてもよい。ある実施形態では、ネットワーク１０４は、インターネットを備えていてもよい。但し、ネットワークベースのアプリケーション用に、クライアント１００及びホストシステム１０８間の接続を提供するあらゆるネットワークが、本発明の範囲に入っている。その代わりに、クライアント１００及びホストシステム１０８は、ネットワークなしで直接接続されてもよい。
【００１８】
接続１０６により、ネットワーク１０４及びホストシステム１０８間の接続が提供される。接続１０６は、専用線接続、デジタル加入者線、及びケーブル等の幅広い範囲の技術を用いて実装されてもよい。また、接続１０６には、アプリケーション・プロキシと、ルータ、スイッチ、及びハブ等のネットワーク要素と、ファイアウォールと、その他のネットワーク・セキュリティ機構等が、含まれていてもよい。
【００１９】
ホストシステム１０８は、ネットワークベースのアプリケーションのアプリケーション・コンテンツ及びプログラムコードを提供するハードウェアとソフトウェアの組み合わせである。ホストシステム１０８は、例えばサーバ、ネットワーク要素等の１台以上の機器を用いて構築されてもよい。ホストシステム１０８における１台又はそれ以上の機器は、例えば、Ｗｉｎｄｏｗｓ（登録商標） ＮＴ、Ｌｉｎｕｘ、及びＵｎｉｘ（登録商標）上で稼動してもよい。また、ホストシステム１０８は、単一の場所、又は、ネットワーク１０４等のネットワークを通じて相互接続された複数の場所に、構築されてもよい。ホストシステム１０８は、オンライン会議、オンラインミーティング、ウェブセミナー、及びアプリケーション・シェアリング等のアプリケーションのためのアプリケーション・コンテンツ及びプログラムコードを提供する。一般に、ホストシステム１０８は、クライアント１００からの要求により、アプリケーション・コンテンツ及びプログラムコードを提供する。そして、ホストシステム１０８は、要求されたアプリケーション・コンテンツ又はプログラムコードを、ＵＲＬで指定された位置から読み込んで、ネットワーク１０４を通じてクライアント１００に提供してもよい。ホストシステム１０８及びクライアント１００間のやりとりは、ハイパーテキスト・トランスポート・プロトコル（ＨＴＴＰ）を用いて媒介されてもよく、アプリケーション・コンテンツは、ハイパーテキスト・マークアップ・ランゲージ（ＨＴＭＬ）等のマークアップ言語を用いて、提供されてもよい。また、アプリケーションのためのコンテンツ及びプログラムコードは、例えば、参照されて、ＨＴＭＬ内に直接又は間接的に組み込まれてもよく、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ、Ｊａｖａ ｓｅｒｖｅｒ ｐａｇｅｓ （ＪＳＰ）、Ｐｅｒｌ、Ｃ／Ｃ＋＋、ａｃｔｉｖｅ ｓｅｒｖｅｒ ｐａｇｅｓ （ＡＳＰ）、ＡｃｔｉｖｅＸ、及びｃｏｍｍｏｎ ｇａｔｅｗａｙ ｉｎｔｅｒｆａｃｅ （ＣＧＩ）等の技術が用いられてもよい。
【００２０】
図２に、本発明に対応するように構成されたクライアント１００のより詳細な図を示す。図２に示すように、クライアント１００には、ウェブブラウザ２００、メディアインタフェース２０２、ネットワークインタフェース２０８、及びアプリケーションメモリ２１０が、含まれている。ウェブブラウザ２００は、ユーザがアプリケーション・コンテンツを見ることを可能としプログラムコードの実行を可能とするソフトウェアアプリケーションとして実装されてもよい。ウェブブラウザ２００には、アプレット２０４、すなわちホストシステム１０８から受信したアプリケーションをサポートするプログラム（例えば、ＨＴＭＬ文書内に埋め込まれたアプレットタグを使用してＪａｖａ（登録商標）コードを実行）、及び処理環境（ｐｒｏｃｅｓｓｉｎｇ ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）２０６が、含まれている。アプレット２０４は、事前にインストールされていてもよく、アプリケーションの実行の際に同時にインストールされてもよい。アプレットは１つだけ図示されているが、ウェブブラウザ２００には、ホストシステム１０８から配信される様々なＪａｖａ（登録商標）プログラムに対応して、複数のアプレットが含まれていてもよい。
【００２１】
処理環境２０６は、処理動作と、メディアインタフェース２０２、アプレット２０４、ネットワークインタフェース２０８、及びアプリケーションメモリ２１０間の通信とを、調整する。処理環境２０６は、ＨＴＭＬエンジン、ＪａｖａＳｃｒｉｐｔエンジン、及びＪａｖａ（登録商標）仮想マシン等のソフトウェアが含まれるように、実装されてもよい。但し、処理環境２０６には、本発明の原理に従った幅広いソフトウェアやハードウェアが、含まれていてもよい。動作の際、処理環境２０６は、例えばウェブブラウザ２００及びホストシステム１０８間の通信、並びにアプリケーションの処理を取り扱う。ユーザがクライアント１００を操作してアプリケーションを起動すると、処理環境２０６は、ＨＴＴＰ及びＴＣＰを用いて、（例えば、図３に示すウェブサーバ３０４を介した）ウェブブラウザ２００及びホストシステム１０８間の通信を媒介する。また、処理環境２０６は、アプリケーションに対応したビデオ及びオーディオのストリーミング等のオーディオ／ビジュアル・コンテンツ用のユーザ・データグラム・プロトコル（「ＵＤＰ」）又はリアルタイムプロトコル（「ＲＴＰ」）接続を管理する。処理環境２０６は、ネットワークインタフェース２０８を用いてネットワーク１０４における通信を方向づける。ネットワークインタフェース２０８は、ローカルエリアネットワーク・インタフェース（例えばイーサネット（登録商標）・インタフェース）として、あるいはモデムとして実装されてもよい。但し、本発明の範囲内で、あらゆる型のネットワークインタフェースが用いられうる。また、処理環境２０６は、アプリケーションメモリ２１０と接続されて、アプリケーションのコンポーネントを格納するとともにそれにアクセスする。アプリケーションメモリ２１０は、ハードディスク、コンパクトディスク、フレキシブルディスク、及びＲＡＭ等のハードウェアとソフトウェアとの組み合わせを用いて、実装されてもよい。
【００２２】
図２に示すように、メディアインタフェ―ス２０２は、クライアント１００でのアプリケーションの実行のために、処理環境２０６及びユーザ（図示せず）間のインタフェースを提供する。メディアインタフェース２０２は、スピーカ、ディスプレイ、マイクロフォン、及びカメラ等の装置とのアプリケーション・コンテンツの入出力を提供してもよい。
【００２３】
図３に、本発明の原理に対応するように構成されたホストシステム１０８のより詳細な図を示す。図示の如く、ホストシステム１０８は、ホスティングサーバ３００、アプリケーションサーバ３０２、ウェブサーバ３０４、メディアサーバ３０８、及びネットワークインタフェース３１０を、備えている。図３には単一のホストシステムを示したが、ホストシステムは、本発明の原理に対応したいくつかのホスト及び／又はサーバを用いて、構築されてもよい。また、ホストシステム１０８の他の実装例も、本発明の範囲に入っている。
【００２４】
ホスティングサーバ３００は、アプリケーションのコンテンツ及びプログラムコードを提供する。ホスティングサーバ３００は、ＰＬＡＣＥＷＡＲＥ（商標）でサポートされているようなオンラインミーティング、オンライン会議、ウェブセミナー、及びアプリケーション・シェアリングを含んだアプリケーションのサーバとして実装されてもよい。動作の際、ホスティングサーバ３００は、ホスティングサーバ３００用に指定された特定のポートにおけるクライアント１００からの通信に対して応答する。ホスティングサーバ３００は、直接又は転送サービスを介して、ＨＴＴＰリクエスト又はＴＣＰ接続に応答し、ＨＴＴＰリクエスト又はＴＣＰ接続を処理して、ネットワークインタフェース３１０と協働して、応答を、ネットワーク１０４を介してクライアント１００へ送信してもよい。
【００２５】
アプリケーションサーバ３０２及びウェブサーバ３０４は、アプリケーションのためのコンテンツ及びプログラムコードを提供し、アプリケーションを起動して、クライアント１００及びホスティングサーバ３００間の接続を確立する。ＨＴＴＰリクエストを受信したときに、ウェブサーバ３０４は、ＨＴＴＰリクエスト中のＵＲＬを直接処理してもよい。また、ウェブサーバ３０４は、ＵＲＬをアプリケーションサーバ３０２へと転送してもよい。ＵＲＬにより、ホストシステム１０８内に位置するファイル、ホストシステム１０８からリモートのファイル（ネットワーク１０４を通じて取得されてもよい）、又はクライアント１００にローカルでインストールされているファイルの中に位置するファイルが、識別されてもよい。図３に示すように、アプリケーションサーバ３０２には、サーブレット３０６が含まれていてもよい。アプリケーションサーバ３０２は、サーブレット３０６を利用して、ＨＴＴＰリクエストを処理してもよい。その代わりに、アプリケーションサーバ３０２は、ＣＧＩスクリプトを利用して、ウェブサーバ３０４から転送されたＨＴＴＰリクエストを処理してもよい。ＨＴＴＰリクエストの処理後、アプリケーションサーバ３０２は、ウェブサーバ３０４を通じて応答を送信する。サーブレット３０６及びアプレット２０４（クライアント１００で実行）により、ホストシステム１０８及びクライアント１００は、アプリケーションのコンテンツ及びプログラムコードを動的に読み込むことにより、モジュール状に拡張される。サーブレットは１つだけ図示されているが、アプリケーションサーバ３０２には、アプリケーションをサポート及び実装する様々なＪａｖａ（登録商標）プログラムの複数のサーブレットが含まれていてもよい。
【００２６】
メディアサーバ３０８は、アプリケーションに関連したメディア別のオーディオ／ビジュアル・コンテンツを、メディアインタフェース２０２を介してクライアント１００に提供する。例えば、オーディオ／ビジュアル・コンテンツには、生のビデオ及びオーディオ、ストリーミングビデオ及びオーディオを通じてのビジュアルプレゼンテーション等が、含まれていてもよい。
【００２７】
ネットワークインタフェース３１０は、ネットワーク１０４を通じたホストシステム１０８及びクライアント１００間の通信を取り扱って方向づけを行う。ネットワークインタフェース３１０は、ルータ、ハブ、又はスイッチとして実装されてもよい。さらに、ネットワークインタフェース３１０は、ファイアウォールのようなセキュリティのための他の機構と組み合わせて、実装されてもよい。
【００２８】
図４ａ及び図４ｂに、本発明の原理に対応したネットワークベースのアプリケーションの適合化、診断、最適化、及び対処を処理する方法を示す。ステップ４００では、クライアント１００は、例えばクライアント１００を実行するユーザ（図示せず）に応答して、ホストシステム１０８と交信する。ユーザは、ウェブブラウザ２００により表示されたアイコンを、「クリック」してもよい。その代わりに、ユーザは、ウェブブラウザ２００を用いて、ウェブサーバ３０４が提供している特定のウェブページへと移行してもよい。ユーザの操作に応答して、クライアント１００は、ネットワークインタフェース２０８を介し、ネットワーク１０４を通じてホストシステム１０８へと、ＨＴＴＰリクエストを発行する。その代わりに、クライアント１００は、プロキシを用いて、ホストシステム１０８へとＨＴＴＰリクエストを発行してもよい。ＨＴＴＰリクエストを受信すると、ホストシステム１０８は、ユーザに対して追加の情報を要求してもよい。クライアント１００におけるユーザは、ホストシステム１０８に、ユーザ名及びパスワード等のログイン情報を提供するよう促されることがある。他の事前の通信及び相互動作も、本発明の原理に対応している。
【００２９】
クライアント１００が、ホストシステム１０８と交信すると、処理フローは、ステップ４０２へと移行する。このステップ４０２では、クライアント１００は、ホストシステムに対して起動ページを要求する。ホストシステム１０８は、ネットワーク１０４を通じてクライアント１００に、起動ページを提供する。起動ページは、ホスティングサーバ３００、アプリケーションサーバ３０２、及びウェブサーバ３０４等の様々な出所からのコンテンツ及びプログラムコードの複数のフレームを、備えていてもよい。フレームのうちのあるものには、ナビゲーション・リンク、ブランド情報等の静的なコンテンツが、含まれていてもよい。これらのコンテンツは、ウェブサーバ３０４及び／又はアプリケーションサーバ３０２により提供されている。
【００３０】
さらに、起動ページ配信時に、ホストシステム１０８は、いくつかのパラメータをクライアントへと配信してもよい。例えば、ホストシステム１０８は、以下のようなパラメータを配信してもよい。すなわち、アプリケーションを要求しているユーザの一意的な識別子、ユーザがアプリケーションを要求して実行するのを許可するための認証識別子、アプリケーションを組み込んだ提供者の名前、ホスティングサーバ３００のインターネット・プロトコル・アドレス、ホスティングサーバ３００が接続の要求を待ち受けているポート番号、ウェブブラウザ２００を通じてアプリケーションがユーザに提供されるべきコンソールのタイプ、アプリケーションのバージョン及び版の情報、ユーザに対して表示されるべき製品名、ユーザに対して表示されるべき提供者の名称等である。
【００３１】
ステップ４０４では、クライアント１００は、起動ページ内に与えられたプログラムコードを実行して、ウェブブラウザ２００がアプリケーションのＪａｖａＳｃｒｉｐｔをサポートできるかどうか判別する初期チェックを行う。例えば、ウェブブラウザ２００は、ＪａｖａＳｃｒｉｐｔをサポートできなければ、＜ｎｏｓｃｒｉｐｔ＞タグ及び＜／ｎｏｓｃｒｉｐｔ＞タグ間のＨＴＭＬテキストを表示してもよい。また、クライアント１００は、本発明の原理によれば、初期チェックの一部として、ＪａｖａＳｃｒｉｐｔのサポートに加えて、他のパラメータを判別してもよい。クライアント１００がＪａｖａＳｃｒｉｐｔをサポートできなければ、処理の流れはステップ４０６へと進む。
【００３２】
ステップ４０６では、ウェブブラウザ２００がアプリケーションのＪａｖａＳｃｒｉｐｔをサポートしていないので、クライアント１００は、ユーザにエラーを通知する。例えば、ウェブブラウザ２００は、エラーメッセージ（例として、ＨＴＭＬタグ「＜ＮＯＳＣＲＩＰＴ＞エラー：ＪａｖａＳｃｒｉｐｔはサポートされていません。」）を表示してもよい。さらに、クライアント１００は、ＪａｖａＳｃｒｉｐｔがサポートされていない、あるいは、ユーザがセキュリティ設定の制限を課しているというような、エラーについての詳細な理由を提供してもよい。他の型のエラーメッセージや、そこでの制限をどのように外すかという診断メッセージは、本発明の原理に準拠したものである。
【００３３】
クライアント１００がウェブブラウザ２００のためのプログラムコード（例えばＪａｖａＳｃｒｉｐｔ）をサポート可能であれば（ステップ４０４）、処理は、ステップ４０８へ進む。ステップ４０８では、クライアント１００は、さらなるプログラムコード、例えば、アプリケーションサーバ３０２及び／又はウェブサーバ３０４からの起動ページにおけるＪａｖａＳｃｒｉｐｔを実行して、ウェブブラウザ２００が他のプログラムコード例えばアプリケーションのＪａｖａ（登録商標）を安全に実行可能であるかどうか判別する。安全に実行されることを確認するために、クライアント１００は、例えば、ウェブブラウザ２００でＪａｖａ（登録商標）が使用可能かどうか、バージョン情報、及びブラウザ２００のブラウザ型式を判別してもよい。さらに、クライアント１００は、ネットワーク１０４におけるホストシステム１０８へのネットワーク経路について検査して、ファイアフォール等の介在機構が、ウェブブラウザ２００上のＪａｖａ（登録商標）の実行を干渉及び／又は妨害するかどうか判別してもよい。これは、例えば、テストアプレットが、クライアント１００にダウンロードされて実行されることが可能かどうかを検査することによりなされる。但し、クライアント１００は、ウェブブラウザ２００がＪａｖａ（登録商標）を安全に実行できるかどうか判別するために、幅広い要因を考慮してもよい。ウェブブラウザ２００がＪａｖａ（登録商標）を安全に実行できないのであれば、処理はステップ４１０へ進む。
【００３４】
ステップ４１０では、クライアント１００は、エラーページを表示することにより、ユーザにエラーを通知する。クライアント１００は、ホストシステム１０８にエラーページを要求してもよい。エラーページには、クライアント１００上でなぜＪａｖａ（登録商標）が安全に実行されないのかを判別するためにクライアント１００上で実行されるプログラムコード（例えばＪａｖａＳｃｒｉｐｔ）が、含まれていてもよい。また、エラーページには、実行済の検査の総合的な結果（例えば、「合格」、「不合格」、「警告」）、並びに、実行済みの検査及び各検査の結果を箇条書きで要約したものが、表示されてもよい。また、エラーページには、結果の理由についての詳細な説明が、含まれていてもよい。その代わりに、エラーページで、不合格であった検査についての修正情報が提供されてもよい。
【００３５】
クライアント１００がＪａｖａ（登録商標）を安全に実行可能であれば、処理は、ステップ４１２へ進む。ステップ４１２では、クライアント１００は、起動ページで提供されているＪａｖａＳｃｒｉｐｔ及びＪａｖａ（登録商標）のプログラムコードを実行して、ホストシステム１０８内のホスティングサーバ３００への接続について検査するとともにクライアント１００の実行環境についてさらに検査する。クライアント１００は、起動ページ内のＪａｖａＳｃｒｉｐｔを実行して、起動ページにアプレット２０４を書き込んでもよく、ホストシステム１０８から追加のＪａｖａ（登録商標）コードをダウンロードしてもよい。接続について検査するために、クライアント１００は、ホストシステム１０８からの起動ページで事前に与えられたパラメータを参照してもよい。例えば、クライアント１００は、ホスティングサーバ３００への接続を以下のように検査してもよい。すなわち、ホスティングサーバ３００に対して、指定されたポート、及び起動ページで与えられたアドレスで、直接接続を試みること、ホスティングサーバ３００に対して、特定のポートで、ＨＴＴＰリクエストを試みること、転送可能なウェブサーバ３０４（例えば、ポート８０リクエストをホスティングサーバ３００へ転送可能）を介してアクセス可能なサービスのＵＲＬを見つけようと試みること、によってである。クライアント１００がホストシステム１０８の検査に成功しなければ、処理はステップ４１４へ移行する。
【００３６】
さらに、クライアント１００がＪａｖａ（登録商標）を安全に実行可能であるので、クライアント１００は、起動ページにおけるＪａｖａ（登録商標）を実行して、実行環境についてのさらなるパラメータを検出してもよい。例えば、クライアント１００は、Ｊａｖａ（登録商標）仮想マシンのビルド番号、インストールされたプラグイン、インストールされたプラグインのバージョン、及び以前にインストールされたその他のアプリケーション用ファイルを、検出してもよい。Ｊａｖａ（登録商標）の実行により検出されうる他のパラメータは、本発明の原理内のものである。
【００３７】
ステップ４１４では、クライアント１００は、例えばエラーページを表示することにより、ユーザにエラーを通知する。エラーページには、プログラムコード（例えば、ホストシステム１０８に対する検査がなぜ成功しなかったかを判別／通知するためにクライアント１００上で実行されるＪａｖａＳｃｒｉｐｔ）が、含まれていてもよい。また、エラーページには、実行済の検査の総合的な結果、、実行済みの検査及び各検査の結果を箇条書きで要約したもの、並びに、適切と思われる修正手段が、表示されてもよい。
【００３８】
クライアント１００がホストシステム１０８の検査に成功して、ホスティングサーバ３００との通信を確立できたなら、処理はステップ４１６へ進む。ステップ４１６では、クライアント１００は、アプリケーション・コンテンツ及びプログラムコードを、ホスティングサーバ３００に要求し、アプリケーションに関する追加のパラメータを収集する。クライアント１００及びホスティングサーバ３００は、以下のいくつかの方法で通信する。すなわち、ホスティングサーバ３００に対する指定されたポート及び起動ページで与えられたアドレスでの直接接続を用いること、ホスティングサーバ３００に対して所定のポートにＨＴＴＰリクエストを直接送信すること、リクエストをホスティングサーバ３００へと転送可能なウェブサーバ３０４を介してアクセス可能なサービスのＵＲＬを用いること、というものである。ホスティングサーバ３００は、起動ページを更新して、アプリケーション実行用に、追加のコンテンツ及びプログラムコードをクライアント１００に提供してもよい。例えば、クライアント１００は、アプリケーション用にＩＰオーディオを使用可能とすべきかどうかといった、ホスティングサーバ３００の構成についての情報を検出してもよい。また、ホスティングサーバ３００の他のパラメータが、本発明の原理に従って様々な時機に、クライアント１００に対して与えられてもよい。
【００３９】
また、起動ページは、プログラムコード（例えば、実行環境のパラメータの検出を続けるようにクライアント１００上で実行されるＪａｖａＳｃｒｉｐｔ及びＪａｖａ（登録商標））を含めるように更新されてもよい。クライアント１００は、プログラムコード実行時に、以下のようなパラメータを検出することとしてもよい。すなわち、クライアント１００のハードウェア構成、クライアント１００のオペレーティングシステム、ウェブブラウザの環境、クライアント１００及びホスティングサーバ３００間のネットワーク経路、課せられたセキュリティ方針、並びにユーザの特徴等である。例えば、クライアント１００は、Ｊａｖａ（登録商標）及び／又はＪａｖａＳｃｒｉｐｔを実行して、使用されているディスプレイサイズ、セキュリティ設定、及び、ＨＴＴＰリクエスト等の通信リクエストの結果を、検出してもよい。そして、クライアント１００は、実行環境について検出されたパラメータ、及び以前にホストシステム１０８からリクエストへと与えられたパラメータを、収集してもよい。クライアント１００は、リクエストをホストシステム１０８（例えばホスティングサーバ３００）へ送信する。ホスティングサーバ３００は、クライアント１００が収集したパラメータを確認して、アプリケーションの構成及び設定を調整するための１つ又はそれ以上の決定を下してもよい。例えば、ホスティングサーバ３００は、クライアント１００が検出したディスプレイサイズに基づいて、特定のアプリケーション・コンソールのサイズを選択してもよい。その代わりに、ホスティングサーバ３００は、アプリケーションのコンソールのサイズが後でクライアント１００によって選択されるというような、多様なアプリケーション・パラメータ用のプログラムコードを提供してもよい。また、ホスティングサーバ３００は、クライアント１００が検出したプラグインに基づいて、アプリケーション用にＩＰオーディオを使用可能としてもよい。そして、ホスティングサーバ３００は、起動ページを更新して、アプリケーションを構成するとともにアプリケーションの設定を調整するためのコンテンツ及びプログラムコードを、クライアント１００に提供してもよい。
【００４０】
ステップ４１８では、クライアント１００は、更新された起動ページを受信して、アプリケーションの構成及び設定が成功するかどうか判別する。例えば、クライアント１００は、アプリケーションの構成及び設定が成功するかどうか判別判別するのに、以下のことを考慮してもよい。
【００４１】
・プロセッサ型式及び速度、メモリサイズ、ディスプレイサイズ、入力装置、並びに他の周辺機器等のクライアント１００のハードウェア構成
・クライアント１００のオペレーティングシステム（例えば、Ｗｉｎｄｏｗｓ（登録商標） 、ＭａｃＩｎｔｏｓｈ、又はＵＮＩＸ（登録商標））
・メーカ、バージョン、プラグイン、オプション機能、及びユーザ設定等のウェブブラウザの環境
・利用可能な帯域幅、遅延、ジッター、ネットワークプロトコル、アプリケーション・プロキシ、ネットワーク要素（例えば、ルータ、スイッチ、及びハブ）、ファイアウォール、及び他のネットワークセキュリティ機構等のクライアント１００及びホスティングサーバ３００間のネットワーク経路
・介在するネットワーク要素、セキュリティ機構、ブラウザ設定、及びオペレーティングシステム等により課されたセキュリティ方針
・ユーザの役割、身元、部署、アプリケーションの使用歴、及び関連アプリケーションの使用歴等のユーザの特徴
但し、本発明の原理によれば、アプリケーションの構成及び設定が成功するかどうかを判別するのに、幅広いパラメータの任意のものが、クライアント１００によって考慮されてもよい。
【００４２】
クライアント１００が、アプリケーションが成功しないと判別するならば、処理はステップ４２０へ移行する。ステップ４２０では、クライアント１００は、例えば、警告ページを表示することにより、１つ又はそれ以上の警告をユーザに通知してもよい。動作の際、クライアント１００内のウェブブラウザ２００は、警告ページを表示して、以下の措置を提案してもよい。すなわち、１つ又はそれ以上のプラグインをダウンロードすること、ウェブブラウザの更新バージョンをダウンロードすること、あるいは、ディスプレイ解像度のようなメディアインタフェース・パラメータを調整すること等である。但し、本発明の原理に従って、幅広い警告及び／又は提案の任意のものが、ユーザに対して提供されてもよい。そして、ステップ４２２では、例えばウェブブラウザ２００を用いているクライアント１００は、メッセージを表示してもよい。例えば、ダイアログウィンドウを用いて、ユーザがアプリケーションの実行の継続を、手動で指示可能とすることである。
【００４３】
クライアント１００が、アプリケーションの構成及び設定が完全に成功すると判別したなら、処理はステップ４２４へ進む。ステップ４２４では、クライアント１００は、アプリケーションを自動的に継続する。例えば、クライアント１００内のウェブブラウザ２００が、アプリケーションのためのアプリケーション・コンソールに自動的になってもよい。さらに、ウェブブラウザ２００は、アプレット２０４に加えて、クライアント１００内の設定変更、及び／又はメディアインタフェース２０２内の設定変更、及びネットワークインタフェース２０８内の設定変更のためのアプレットを、起動してもよい。そして、クライアント１００は、該クライアント１００の個別の実行環境向けに調整された構成情報に基づいて、アプリケーションを実行してもよい。
【００４４】
具体的な要素について説明してきたが、本発明に対応した方法及び装置には、追加の要素又は他の要素が含まれうることも、当業者には理解されるであろう。ここに開示した本発明の明細書及び実例を考慮することにより、当業者には、本発明の他の実施形態及び変形例が明らかとなろう。例えば、ＪＳＰ、Ｐｅｒｌ、Ｃ／Ｃ＋＋、ＡＳＰ、及びＡｃｔｉｖｅＸが、本発明の原理に従って用いられてもよい。明細書及び実例は、説明用としてのみ考慮されるものであり、本発明の本当の範囲及び真意は、特許請求の範囲によってのみ示されることが、意図されている。
【図面の簡単な説明】
【図１】
本発明の原理に対応したネットワークベースのアプリケーションの全体構成図。
【図２】
本発明の原理に対応するように構成されたクライアントのより詳細な図。
【図３】
本発明の原理に対応するように構成されたサーバホストのより詳細な図。
【図４ａ】
本発明の原理に対応したネットワークベースのアプリケーションの適合化、診断、最適化、及び対処を処理する方法を示す図。
【図４ｂ】
本発明の原理に対応したネットワークベースのアプリケーションの適合化、診断、最適化、及び対処を処理する方法を示す図。
【図１】
2004519747.tif 000003
【図２】
2004519747.tif 000004
【図３】
2004519747.tif 000005
【図４ａ】
2004519747.tif 000006
【図４ｂ】
2004519747.tif 000007
【国際公開パンフレット】
2004519747.tif 000008
2004519747.tif 000009
2004519747.tif 000010
2004519747.tif 000011
2004519747.tif 000012
2004519747.tif 000013
2004519747.tif 000014
2004519747.tif 000015
2004519747.tif 000016
2004519747.tif 000017
2004519747.tif 000018
2004519747.tif 000019
2004519747.tif 000020
2004519747.tif 000021
2004519747.tif 000022
2004519747.tif 000023
2004519747.tif 000024
2004519747.tif 000025
2004519747.tif 000026
2004519747.tif 000027
2004519747.tif 000028
2004519747.tif 000029
2004519747.tif 000030
2004519747.tif 000031
2004519747.tif 000032
2004519747.tif 000033
2004519747.tif 000034
2004519747.tif 000035
2004519747.tif 000036
2004519747.tif 000037
2004519747.tif 000038
【国際公開パンフレット（コレクトバージョン）】
2004519747.tif 000039
2004519747.tif 000040
【国際調査報告】
2004519747.tif 000041
2004519747.tif 000042
2004519747.tif 000043