(57)【要約】【課題】プロキシ・サーバ内にウェブ・ブラウザを埋め込み、それによってプロキシ・ブラウザを形成することによって、少なくとも１つのクライアント・コンピュータのソフトウェア・アプリケーションを実行するための、システム、方法、およびコンピュータ・プログラム製品を提供する。【解決手段】プロキシ・ブラウザが、プロキシ・サーバ内部でアプリケーションを実行するために使用される。本発明の一実施形態では、プロキシ・サーバに接続している各クライアント・ブラウザにプロキシ・ブラウザのインスタンスが割り当てられ、クライアント・ブラウザに関するセッション情報が維持される。クライアント・ブラウザがプロキシ・サーバに要求する場合、要求はプロキシ・ブラウザのインスタンスにリンクされる。【選択図】  図１
2011511974.tif 000002
【特許請求の範囲】
【請求項１】
プロキシ・サーバ内にウェブ・ブラウザを埋め込み、それによってプロキシ・ブラウザを形成すること、および
前記プロキシ・サーバ内部でアプリケーションを実行するために前記プロキシ・ブラウザを使用すること、
を含む、少なくとも１つのクライアント・コンピュータ・ソフトウェア・アプリケーションを実行するための方法。
【請求項２】
前記使用することが、
前記プロキシ・サーバに接続している各クライアント・ブラウザに、前記プロキシ・ブラウザのインスタンスを割り当てること、
前記クライアント・ブラウザに関するセッション情報を維持すること、および
前記クライアント・ブラウザが前記プロキシ・サーバに要求する場合、前記要求を前記プロキシ・ブラウザの前記インスタンスにリンクすること、
を含む、請求項１に記載の方法。
【請求項３】
前記要求が前記クライアント・ブラウザによる第１の要求である場合、前記リンクすることが、
前記プロキシ・ブラウザを介してウェブ・ページを開くこと、
前記ウェブ・ページ上で前記クライアント・アプリケーションを実行すること、および
前記実行の結果として生じる前記ページの前記コンテンツの一部を、前記クライアント・ブラウザに戻すこと、
を含む、請求項２に記載の方法。
【請求項４】
前記要求が前記クライアント・ブラウザによる第１の要求でない場合、前記実行することが、前記要求を前記ウェブ・ページ上で実行するための動作に変換することを含む、請求項３に記載の方法。
【請求項５】
前記戻すことが、修正済みウェブ・ページを作成することを含む、請求項３に記載の方法。
【請求項６】
前記作成することが、
前記ウェブ・ページから要素を抽出すること、および
前記要素を前記修正済みウェブ・ページと組み合わせること、
を含む、請求項５に記載の方法。
【請求項７】
前記作成することが、前記修正済みウェブ・ページに新しいコンテンツを挿入することを含む、請求項５に記載の方法。
【請求項８】
前記実行することが、次の修正済みウェブ・ページを生成するために、前記プロキシ・ブラウザへの動作セットの適用を決定するように、前記要求を解釈することを含む、請求項３に記載の方法。
【請求項９】
前記ウェブ・ページの前記コンテンツをスキャンすること、および
次の修正済みウェブ・ページを決定すること、
をさらに含む、請求項３に記載の方法。
【請求項１０】
プロキシ・サーバ内にウェブ・プラウザを配置し、それによってプロキシ・ブラウザを形成すること、
前記プロキシ・サーバ内のイベント・トランスレータを前記プロキシ・ブラウザに論理的に接続すること、および、
前記プロキシ・サーバ内のトランスコーダを前記プロキシ・ブラウザおよび前記イベント・トランスレートへと論理的にインターフェースすること、
を含む、プロキシ・サーバ内にウェブ・ブラウザを埋め込む方法。
【請求項１１】
前記配置することが、
表示されることになるウェブ・ページ内に埋め込まれたコードを前記ウェブ・ブラウザに実装させること、
前記ウェブ・ページを制御するために、前記ウェブ・ブラウザにアプリケーション・プログラム・インターフェースを実装させること、
を含む、請求項１０に記載の方法。
【請求項１２】
前記接続することが、前記イベント・トランスレータに、クライアント・ブラウザからの少なくとも１つの要求を、前記プロキシ・ブラウザ内に含まれるウェブ・ページに適用されることになる動作へと変換させることを含む、請求項１０に記載の方法。
【請求項１３】
前記インターフェースすることが、
前記プロキシ・ブラウザがその新しいコンテンツのロードを完了した時点を前記トランスコーダに決定させること、
前記トランスコーダに、前記プロキシ・ブラウザから前記コンテンツの関連部分を抽出させること、および
前記トランスコーダが、前記クライアント・ブラウザに出力を送信できるようにすること、
を含む、請求項１０に記載の方法。
【請求項１４】
プロキシ・サーバ内に格納されたプロキシ・ブラウザによってクライアント・ブラウザから要求を受信すること、
前記要求を動作に変換すること、
前記動作を前記プロキシ・ブラウザ内のウェブ・ページに適用すること、
前記ウェブ・ページの関連部分を抽出すること、および、
前記抽出された前記ウェブ・ページの関連部分を使用して、前記クライアント・ブラウザによって読み取り可能な出力を生成すること、
を含む、ウェブ・アプリケーションへのアクセスを提供する方法。
【請求項１５】
前記生成することが、前記クライアント・ブラウザの機能に適合されたスクリプトが埋め込まれたＨＴＭＬページを生成することを含む、請求項１４に記載の方法。
【請求項１６】
前記クライアント・ブラウザに関して既存ウェブ・ページのセットが修正される方法を指定し、ウェブ・ページ間をナビゲートするために前記クライアント・ブラウザ内で使用可能な手段を指定するための、アプリケーション記述を作成することをさらに含む、請求項１４に記載の方法。
【請求項１７】
外部ウェブ・サーバに結合されたプロキシ・ブラウザと、
クライアント・ブラウザからの要求を受信するためのイベント・トランスレータと、
前記プロキシ・ブラウザによって前記外部ウェブ・サーバから受信したコンテンツの関連部分を抽出し、前記クライアント・ブラウザに送信される出力を生成するための、トランスコーダと、
を備える、プロキシ・サーバ。
【請求項１８】
前記クライアント・ブラウザに関して既存ウェブ・ページのセットが修正される方法を指定するため、および、ウェブ・ページ間をナビゲートするために前記クライアント・ブラウザ内で使用可能な手段を指定するための、アプリケーション記述コンポーネントをさらに備える、請求項１７に記載のプロキシ・サーバ。
【請求項１９】
前記クライアント・ブラウザからの要求を前記プロキシ・ブラウザ内で実行するための動作に解析するための、イベント・スクリプト・コンポーネントをさらに備える、請求項１７に記載のプロキシ・サーバ。
【請求項２０】
前記プロキシ・ブラウザ内にロードされた前記既存ウェブ・ページの前記コンテンツをスキャンし、修正済みウェブ・ページを決定するための、ロード・スクリプト・コンポーネントをさらに備える、請求項１８に記載のプロキシ・サーバ。
【請求項２１】
前記クライアント・ブラウザに送信されることになる前記修正済みウェブ・ページの前記コンテンツを作成する方法を指定するための、クリップ・スクリプト・コンポーネントをさらに備える、請求項２０に記載のプロキシ・サーバ。
【請求項２２】
コンピュータ読み取り可能プログラムを有するコンピュータ使用可能メディアを備え、前記コンピュータ読み取り可能プログラムは、コンピュータ上で実行された場合、
プロキシ・サーバ内にウェブ・ブラウザを埋め込み、それによってプロキシ・ブラウザを形成すること、および、
前記プロキシ・サーバ内部でクライアント・アプリケーションを実行するために前記プロキシ・ブラウザを使用すること、
を、前記コンピュータに実行させる、コンピュータ・プログラム。
【請求項２３】
前記コンピュータ読み取り可能プログラムが、
前記プロキシ・サーバに接続している各クライアント・ブラウザに、前記プロキシ・ブラウザのインスタンスを割り当てること、
前記クライアント・ブラウザに関するセッション情報を維持すること、および
前記クライアント・ブラウザが前記プロキシ・サーバに要求する場合、前記要求を前記プロキシ・ブラウザの前記インスタンスにリンクすること、
を、さらに前記コンピュータに実行させる、請求項２２に記載のコンピュータ・プログラム。
【請求項２４】
前記要求が前記クライアント・ブラウザによる第１の要求である場合、前記コンピュータ読み取り可能プログラムが、
前記プロキシ・ブラウザを介してウェブ・ページを開くこと、
前記ウェブ・ページ上で前記クライアント・アプリケーションを実行すること、および
前記実行の結果として生じる前記ページの前記コンテンツの一部を、前記クライアント・ブラウザに戻すこと、
を、さらに前記コンピュータに実行させる、請求項２３に記載のコンピュータ・プログラム。
【請求項２５】
前記要求が前記クライアント・ブラウザによる第１の要求でない場合、前記コンピュータ読み取り可能プログラムが、
前記要求を前記ウェブ・ページ上で実行するための動作に変換することを、さらに前記コンピュータに実行させる、請求項２４に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にプロキシ・サーバに関し、具体的に言えば、プロキシ・サーバを使用して、機能が制限されたデバイスが動的ウェブ・アプリケーションをサポートできるようにするための、システムおよび方法に関する。
【背景技術】
【０００２】
ウェブ・アプリケーションは、インターネットを使用したほとんどのクライアント／サーバの対話に使用される。ウェブ・アプリケーションでは、一部またはすべてのアプリケーションが、通常はウェブ・ブラウザおよびＪａｖａアプレットを使用して、実行されるごとにウェブからダウンロードされる。さらに近年では、多くのＷｅｂ  ２．０アプリケーションに見られるような動的ウェブ・アプリケーションは、ユーザのウェブ体験に新種の動的な対話型要素をもたらしている。これらのアプリケーションは、一般に、ＪａｖａＳｃｒｉｐｔなどの標準言語でのクライアント側スクリプティングの使用を含む。
【０００３】
近年、携帯電話、携帯情報端末（ＰＤＡ）、テレビジョン・セットトップ・ボックス、その他などの、機能が向上した電子デバイスも急増している。しかしながら、この種のデバイスは、スクリーン面積の制限、フォーマットの互換性、コンピューティング機能の制限、またはＪａｖａＳｃｒｉｐｔのサポート不能などの、様々な理由により、動的ウェブ・アプリケーションを完全に利用できないことがしばしばである。したがって、こうしたデバイスで使用するように、既存の動的ウェブ・アプリケーションを適合させる方法が求められている。
【０００４】
加えて、特定ユーザ、ユーザ・グループ、または特定タスクについて、動的ウェブ・アプリケーションをカスタマイズできるようにすることも必要である。プロキシ・サーバ・ベース技術は、この種のカスタマイズを提供するための可能なソリューションとして考察されてきた。しかしながら、プロキシ・サーバ技術は、一般に、Ｗｅｂ  ２．０アプリケーションでは良好に働かない。これは、１）Ｗｅｂ  ２．０アプリケーションの動的機能を実装するＪａｖａＳｃｒｉｐｔコードがプロキシ・サーバをパススルー（pass through）しないこと、または、２）スクリプトが予想するウェブ・ページのドキュメント・オブジェクト・モデル（ＤＯＭ）の一部の要素が、プロキシ・サーバによって除去される可能性があることの、いずれかによる。
【０００５】
デバイスに追加の機能を付加するための手法の１つは、プロキシ・サーバを使用して、クライアント要求あるいはサーバ応答またはその両方を変換することである。米国特許第５，７２７，１５９号は、低出力ポータブル・コンピュータが使用可能な形にコンテンツを変換するためのプロキシ・サーバについて記載している。米国特許第５，９１８，０１３号および第６，８２９，７４６号は、外国語を話す人のために他の言語へ、様々なディスプレイ要件を備えたモバイル・デバイスへ、または、障害を持つユーザがよりアクセスしやすいように大きなボタンを備えた形へなど、既存のフォーマットから特定の状況にとってより好適な他のフォーマットへと、ドキュメントをトランスコーディング（transcoding）するための技術について、記載している。残念ながら、これらの技術は、動的コンテンツを適切に処理できないという点において前述して問題も備えている。これは主に、これらの技術が、クライアント側スクリプトを実行すること、および各クライアントに関する十分な状態情報を維持することが、不可能なためである。
【０００６】
リモート・デスクトップ使用技術は、機能の制限されたデバイスが動的ウェブ・アプリケーションを使用できるようにするために使用される可能性のある、他の既存の技術である。リモート・デスクトップ技術の例には、クライアント・デバイス上でサーバ・マシンからのウェブ・ブラウザの出力を表示するために使用可能な、ＭｉｃｒｏｓｏｆｔのＲｅｍｏｔｅ  Ｄｅｓｋｔｏｐ、ＸＷｉｎｄｏｗｓ、またはＡＴ＆ＴのＶＮＣが含まれる。これらの技術は、サーバ・マシンから精密なピクセルを表示することに限定されているが、カスタマイゼーションにおいてもある程度の働きをしている。その例には、ＷｉｎｃｕｔまたはＵｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｆａｃａｄｅが含まれる。たとえば、これらのカスタマイゼーションは、リモート表示インターフェースにおいて、オリジナル・インターフェースからのボタンのサブセットを表示することができる。他のプロキシ・サーバ手法とは異なり、この手法は、実際のウェブ・ブラウザがサーバ・マシン上で使用されているため、クライアント側ＪａｖａＳｃｒｉｐｔを処理することができる。しかしながら、これらの技術は、依然としてそれらのサーバ・マシンのイメージへの依存によって制限されている。たとえば、ボタン上のラベルを変更することは、不可能ではないにしても困難である。クライアント・マシン上のユーザは、ボタンの指示およびクリック、またはスクロールバーのドラッグなどの、サーバ・マシンが予想する入力を提供できなければならないため、サーバ・マシンおよびクライアント・マシンの入力および出力機能も同様でなければならない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第５，７２７，１５９号
【特許文献２】米国特許第５，９１８，０１３号
【特許文献３】米国特許第６，８２９，７４６号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
したがって、機能が制限されたデバイスが、動的ウェブ・アプリケーションを適切に処理できるようにするための方法が求められている。クライアント側スクリプトを実行すること、および各クライアントに関する十分な状態情報を維持することが可能な、プロキシ・サーバも求められている。
【課題を解決するための手段】
【０００９】
上記で簡単に説明した従来技術の制限を克服するために、本発明は、ブラウザ・ベースのプロキシ・サーバを使用した動的ウェブ・アプリケーションのカスタマイゼーションおよび配布のための、方法、コンピュータ・プログラム製品、およびシステムを提供する。
【００１０】
本発明の一態様において、少なくとも１つのクライアント・コンピュータ・ソフトウェア・アプリケーションを実行するための方法は、プロキシ・サーバ内にウェブ・ブラウザを埋め込み、それによってプロキシ・ブラウザを形成すること、および、プロキシ・サーバ内部でアプリケーションを実行するためにプロキシ・ブラウザを使用することを含む。
【００１１】
本発明の他の態様において、プロキシ・サーバ内にウェブ・ブラウザを埋め込む方法は、プロキシ・サーバ内にウェブ・プラウザを配置し、それによってプロキシ・ブラウザを形成すること、プロキシ・サーバ内のイベント・トランスレータをプロキシ・ブラウザに論理的に接続すること、および、プロキシ・サーバ内のトランスコーダをプロキシ・ブラウザおよびイベント・トランスレートへと論理的にインターフェースすることを含む。
【００１２】
本発明の他の態様において、ウェブ・アプリケーションへのアクセスを提供する方法は、プロキシ・サーバ内に格納されたプロキシ・ブラウザによってクライアント・ブラウザから要求を受信すること、要求を動作に変換すること、動作をプロキシ・ブラウザ内のウェブ・ページに適用すること、ウェブ・ページの関連部分を抽出すること、および、抽出されたウェブ・ページの関連部分を使用して、クライアント・ブラウザによって読み取り可能な出力を生成することを含む。
【００１３】
本発明の追加の態様において、プロキシ・サーバは、外部ウェブ・サーバに結合されたプロキシ・ブラウザと、クライアント・ブラウザからの要求を受信するためのイベント・トランスレータと、プロキシ・ブラウザによって外部ウェブ・サーバから受信したコンテンツの関連部分を抽出し、クライアント・ブラウザに送信される出力を生成するためのトランスコーダとを備える。
【００１４】
本発明の他の態様において、コンピュータ・プログラム製品は、コンピュータ読み取り可能プログラムを有するコンピュータ使用可能メディアを備え、コンピュータ読み取り可能プログラムは、コンピュータ上で実行された場合、プロキシ・サーバ内にウェブ・ブラウザを埋め込み、それによってプロキシ・ブラウザを形成すること、および、プロキシ・サーバ内部でクライアント・アプリケーションを実行するためにプロキシ・ブラウザを使用することを、コンピュータに実行させる。
【００１５】
本発明を特徴付ける様々な利点および新規な機能は、本明細書に添付されその一部を形成する特許請求の範囲において詳細に指摘される。しかしながら、本発明およびその利点をより良く理解するために、本明細書の他の部分を形成し、本発明に従った特定の例が説明および例示された、対応する図面と共に、添付の説明を参照しなければならない。
【００１６】
次に、本発明の好ましい諸実施形態について、以下の図面を参照しながら単なる例として説明する。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に従った、ブラウザ・ベースのプロキシ・サーバ・システムを示す概念的ブロック図である。
【図２】本発明の実施形態に従った、図１に示されたシステムを使用した動的ウェブ・アプリケーションのカスタマイゼーションおよび配布のためのプロセスのタイムラインを示す図である。
【図３】本発明の一実施形態を実装するために有用な情報処理システムを示す高水準ブロック図である。
【発明を実施するための形態】
【００１８】
本発明の諸実施形態は、機能が制限されたデバイスが動的ウェブ・アプリケーションを処理できるようにするためのシステム、コンピュータ・プログラム製品、および方法を教示することによって、従来技術に関連付けられた問題に対処する。本発明の諸実施形態は、プロキシ・ブラウザと呼ばれるウェブ・ブラウザをプロキシ・サーバ内に配置し、これを使用して、プロキシ・サーバ内でＪａｖａＳｃｒｉｐｔなどのクライアント側アプリケーションを実行する。プロキシ・サーバに接続している各クライアント・ブラウザには、その独自のプロキシ・ブラウザ・インスタンスが与えられ、クライアント・ブラウザからの今後の要求を適切なプロキシ・ブラウザにリンクできるように、セッション情報が維持される。クライアント・ブラウザによる第１の要求は、ウェブ・ページを開くこと、既存のウェブ・ページに埋め込まれた任意のクライアント側コード（ＪａｖａＳｃｒｉｐｔなど）を実行すること、および、その後、最終ページ・コンテンツの一部をクライアント・ブラウザに戻すことを、対応するプロキシ・ブラウザに実行させる。プロキシ・ブラウザは、ブラウザ内に表示されるウェブ・ページにアクセスし、これを操作し、制御するために、ＤＯＭなどのアプリケーション・プログラム・インターフェース（ＡＰＩ）を提供する。クライアント・ブラウザによるその後の要求は、プロキシ・ブラウザによって現在開いているページ上で実行するための動作に変換される。これらの動作は、ページ内のＤＯＭオブジェクトをクリックすること、およびフォームを提出することを、含むことができる。プロキシ・ブラウザは、ページのロードを完了すると、最終ページ・コンテンツの一部を再度クライアント・ブラウザに戻す。
【００１９】
結果として、本発明の諸実施形態は、既存の技術を上回るいくつかの重要な利点を有する。以前のプロキシ・サーバは、通常は、ページを修正するコードにＵＲＬがマッピングされる、マップ・スタイル・システムを使用した。クライアントがページを要求するごとに、サーバは外部ページからコンテンツを取得し、そのページを修正するためのコードを検索し、これを実行して、修正済みページを戻す。ユーザがそのページにたどり着くために使用したパスは無関係である。本発明の諸実施形態は、ユーザが作成可能な入力およびそれらの入力に関する可能な出力を含む、アプリケーションを介してユーザが使用することのできる可能な対話型パスを記述する記述言語を採用する。これによって、クライアント要求を、プロキシ・ブラウザ内のシミュレートされたマウスおよびキーボード・イベントに変換することができるため、アプリケーション記述が、Ｗｅｂ  ２．０アプリケーションからの動的コンテンツをサポートすることが可能となる。また、最新のページ要求の代わりに、ＸｍｌＨｔｔｐＲｅｑｕｅｓｔｓによって変更されたページの一部分から、新しい出力を生成することができる。
【００２０】
本発明の諸実施形態は、多くの異なる目的に使用可能である。たとえば、本発明の諸実施形態を使用して、患者のスケジューリングまたは病歴の概略などの、電子医療記録（ＥＭＲ）アプリケーションの選択片を、医者が持ち運ぶことのできるモバイル・デバイスに移すことができる。また本発明の諸実施形態を使用して、エグゼクティブとそのアシスタントのために、アシスタントが新しい旅行をスケジューリングするためのインターフェースを受信し、エグゼクティブが旅行中に予約を確認するため、および更新された旅程を取得するためのインターフェースを受信するように、旅行スケジューリング・アプリケーションを適合させることができる。本発明の実施形態に関する他の用途は、ビジネスのウェブ・ベースの購買システムで見られる場合のある、長く退屈なチェックアウト・プロセスのカスタマイズとすることができる。本発明の実施形態は、たとえば、そのユーザが購買ごとに変更する必要のあるフィールドのみを表示することによって、より簡単なプロセスを可能にすることができる。
【００２１】
次に図１を参照すると、プロキシ・サーバ１２およびクライアント・ブラウザ１４を含む、ブラウザ・ベースのプロキシ・サーバ・システム１０が示されている。プロキシ・サーバ１２は、プロキシ・ブラウザ１６、イベント・トランスレータ１８、およびトランスコーダ／ウェブ・クリッパ２０を含む。プロキシ・ブラウザ１６は既存のウェブ・サーバ１７に接続される。プロキシ・ブラウザ１６は標準ウェブ・ブラウザとすることが可能であり、既存のウェブ・ページに埋め込まれたコードと互換性のある実行エンジン（図示せず）を実装可能である。いくつかの実施形態では、これはＪａｖａＳｃｒｉｐｔ実行エンジンとすることができる。プロキシ・ブラウザ１６は、ブラウザ内に表示されるウェブ・ページへのアクセス、操作、および制御を実行するためのＡＰＩを提供することもできる。いくつかの実施形態では、これに、現在表示されているウェブ・ページのＤＯＭツリー記述の生成が含まれる場合がある。一実施形態では、Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ（Ｒ）ブラウザが使用可能であるが、原則として、アドオン・コードがウェブ・ページ・データ構造にアクセス可能な、いかなる最近のブラウザも使用可能である。
【００２２】
イベント・トランスレータ１８は、クライアント・ブラウザ１４から要求を受け取り、それらを、プロキシ・ブラウザ１６内に現在含まれているウェブ・ページに適用されることになる動作に変換する。これらの動作の範囲は、リンクのクリックなどの単純なものから、フォームに記入して実行依頼ボタンを押すなどの、より複雑な動作にまで及ぶ。
【００２３】
トランスコーダ／ウェブ・クリッパ２０は、プロキシ・ブラウザ１６がその新しいコンテンツのロードを終了した時点を決定する。これは、ｏｎＬｏａｄイベントを通じて実行可能である。トランスコーダ／ウェブ・クリッパ２０は、コンテンツの関連部分も抽出し、クライアント・ブラウザ１４に返送される出力も生成する。出力の範囲は、低機能デバイス用の静的ＨＴＭＬページから、高機能デバイス用の、Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔ（ＣＳＳ）、動的ＨＴＭＬ（ＤＨＴＭＬ）、およびＪａｖａＳｃｒｉｐｔを備える完全な動的ページにまで及ぶ。生成されるページは、プロキシ・サーバ１２に返送されるいかなる要求もイベント・トランスレータ１８によって解釈可能であるように、作成されることに留意されたい。
【００２４】
プロキシ・ブラウザ１６、イベント・トランスレータ１８、およびトランスコーダ／ウェブ・クリッパ２０の動作は、既存のウェブ・ページ・セットがクライアント・ブラウザ１４用に修正される方法と、クライアント・ブラウザ内でページ間のナビゲーション用に使用可能な手段とを指定する、アプリケーション記述コンポーネント２２によってまとめて結合される。
【００２５】
本実施形態では、アプリケーション記述２２は、プロキシ・サーバ１２によって生成された修正済みウェブ・ページのセットからなる。これらの修正済みウェブ・ページは「ページレット」と呼ばれる。各ページレットは、クライアント・ブラウザによって見ることが可能な１ページを記述する。ページレットは、アプリケーション記述において、クリップ・スクリプト、イベント・スクリプト、およびロード・スクリプトという、３つの異なるスクリプトによって定義される。
【００２６】
次に図２を参照すると、ブラウザ・ベースのプロキシ・サーバ・システム１０の一実施形態のタイムラインが示されている。具体的に言えば、このタイムライン２６は、プロキシ・サーバ１２がアプリケーション記述２２からのスクリプトを使用してどのように要求を処理するかを示す。具体的に言えば、クライアント・ブラウザ２８は、プロキシ・サーバ１２によって受信される要求を生成する。クライアント・ブラウザ２８は、モバイル・デバイス内または機能が制限された他のデバイス内に常駐可能である。クライアント・ブラウザからの要求に応答して、プロキシ・ブラウザ３４は、外部の既存ウェブ・サーバから受信したウェブ・ページを開く。
【００２７】
アプリケーション記述２２は、第１のページレット３０を定義し、第２のページレット４０を生成するためにアプリケーション記述２２からのどの動作セットがプロキシ・ブラウザ３４内で実行されるべきであるかを決定するために、クライアント・ブラウザ２８からの要求を解釈する、イベント・スクリプト３２を使用する。これらの動作は、要求内にエンコードされない可能性がある。その代わりに、要求は、プロキシ・サーバ１２上に格納された動作のリストへのポインタを備えることができる。こうした動作は、クライアント・ブラウザ２８内のリンクをクリックすること、またはフォームに記入して実行依頼ボタンを押すことを、含むことができる。イベント・スクリプト３２は、プロキシ・ブラウザ３４が既存のウェブ・サーバ３６から受信した任意の新しいコンテンツのロードを完了した後に発生することになる、適切なブラウザ・イベントも識別する。イベント・スクリプト３２は、このイベントが次に発生した際に、ロード・スクリプト３８も実行させる。
【００２８】
ロード・スクリプト３８は、プロキシ・ブラウザ３４にロードされたページのコンテンツをスキャンし、第２のページレット４０などの次のページレットを決定する。第２のページレット４０が決定されると、クライアント・ブラウザ２８に送信されることになるコンテンツを生成するために、第２のページレット４０に関するクリップ・スクリプト４２が呼び出される。
【００２９】
具体的に言えば、クリップ・スクリプトは、クライアント・ブラウザに送信されることになるページレットのコンテンツを作成する方法を指定する。コンテンツ作成には、主に、プロキシ・ブラウザ３４にロードされたページからの要素の選択および抽出と、単一のコヒーレント・ページを作成するためのそれらの組み合わせとが含まれる。クリップ・スクリプト４２は、新しいコンテンツも挿入することができる。クリップ・スクリプト４２は、外部の既存ウェブ・サーバ３６ではなく、プロキシ・サーバ３４へと逆にポイントするように、リンクおよびフォームを書き直すこともできる。図２に示されたプロセス２６は、その後、無期限に反復可能である。
【００３０】
本発明の実施形態は、完全なハードウェアの実施形態、完全なソフトウェアの実施形態、または、ハードウェア要素およびソフトウェア要素の両方を含む実施形態の形を取ることができる。好ましい実施形態は、ファームウェア、常駐ソフトウェア、およびマイクロコードを含むがこれらに限定されない、ソフトウェア内に実装される。
【００３１】
さらに、本発明の諸実施形態は、コンピュータまたは任意の命令実行システムによって、あるいはそれらに関連して使用するための、プログラム・コードを提供する、コンピュータ使用可能メディアまたはコンピュータ読取可能メディアからアクセス可能な、コンピュータ・プログラム製品の形を取ることができる。本説明では、コンピュータ使用可能メディアまたはコンピュータ読取可能メディアは、命令実行のシステム、装置、またはデバイスによって、あるいはそれらに関連して使用するためのプログラムを、含有、格納、通信、伝搬、または移送することが可能な、任意の装置とすることができる。
【００３２】
メディアは、電子、磁気、光、電磁、赤外線、半導体のシステム（あるいは装置またはデバイス）、あるいは伝搬メディアとすることができる。コンピュータ読取可能メディアの例には、半導体またはソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、剛性磁気ディスク、または光ディスクが含まれる。光ディスクの現行例には、コンパクト・ディスク−読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク−読み取り／書き込み（ＣＤ−Ｒ／Ｗ）、およびＤＶＤが含まれる。
【００３３】
プログラム・コードの格納あるいは実行またはその両方に好適なデータ処理システムは、システム・バスを介してメモリ要素に直接または間接的に結合された、少なくとも１つのプロセッサを含むことになる。メモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリ、大容量ストレージ、および、実行中に大容量ストレージから取り出さなければならない回数を削減するために少なくとも何らかのプログラム・コードの一時ストレージを提供するキャッシュ・メモリを、含むことができる。
【００３４】
入力／出力またはＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイスを含むが、これらに限定されない）を、システムに直接、または介在するＩ／Ｏコントローラを介して、結合することができる。
【００３５】
データ処理システムを、介在する専用または公衆のネットワークを介して、他のデータ・処理システムあるいはリモート・プリンタまたはストレージ・デバイスに結合できるようにするために、ネットワーク・アダプタをシステムに結合することもできる。モデム、ケーブル・モデム、およびＥｔｈｅｒｎｅｔ（ＴＭ）カードは、ネットワーク・アダプタの現在使用可能なタイプのうちのごく一部である。
【００３６】
図３は、本発明の一実施形態を実装するために有用な情報処理システムを示す高水準ブロック図である。コンピュータ・システムは、プロセッサ４４などの１つまたは複数のプロセッサを含む。プロセッサ４４は、通信インフラストラクチャ４６（たとえば通信バス、クロスオーバ・バー、またはネットワーク）に接続される。様々なソフトウェア実施形態が、この例示的なコンピュータ・システムに関して説明される。当業者がこの説明を読めば、他のコンピュータ・システムあるいはコンピュータ・アーキテクチャまたはその両方を使用して、本発明の諸実施形態を実装する方法が明らかとなろう。
【００３７】
コンピュータ・システムは、ディスプレイ・ユニット５０上で表示するために、グラフィクス、テキスト、および他のデータを通信インフラストラクチャ４６から（または図示されていないフレーム・バッファから）転送する、ディスプレイ・インターフェース４８を含むことができる。コンピュータ・システムは、メイン・メモリ５２、好ましくはランダム・アクセス・メモリ（ＲＡＭ）も含み、２次メモリ５４も含むことができる。２次メモリ５４は、たとえばハード・ディスク・ドライブ５６、あるいは、たとえばフレキシブルディスク・ドライブ、磁気テープ・ドライブ、または光ディスク・ドライブを表す取り外し可能ストレージ・ドライブ５８、またはその両方を含むことができる。取り外し可能ストレージ・ドライブ５８は、当業者であれば周知の方法で、取り外し可能ストレージ・ユニット６０からの読み取り、あるいはそれへの書き込み、またはその両方を実行する。取り外し可能ストレージ・ユニット６０は、取り外し可能ストレージ・ドライブ５８によって読み取られ、それによって書き込まれる、たとえば、フレキシブルディスク、コンパクト・ディスク、磁気テープ、または光ディスクなどを表す。取り外し可能ストレージ・ユニット６０は、内部にコンピュータ・ソフトウェアあるいはデータまたはその両方が格納された、コンピュータ読み取り可能メディアを含むことが理解されよう。
【００３８】
代替の諸実施形態では、２次メモリ５４は、コンピュータ・プログラムまたは他の命令をコンピュータ・システムにロードできるようにするための、他の同様な手段を含むことができる。こうした手段には、たとえば、取り外し可能ストレージ・ユニット６２およびインターフェース６４を含むことができる。こうした手段の例には、プログラム・カートリッジおよびカートリッジ・インターフェース（ビデオ・ゲーム・デバイスで見られるような）、取り外し可能メモリ・チップ（ＥＰＲＯＭまたはＰＲＯＭなど）および関連ソケット、ならびに、ソフトウェアおよびデータを取り外し可能ストレージ・ユニット６２からコンピュータ・システムへと転送できるようにする、他の取り外し可能ストレージ・ユニット６２およびインターフェース６４を含むことができる。
【００３９】
コンピュータ・システムは、通信インターフェース６６を含むこともできる。通信インターフェース６６は、コンピュータ・システムと外部デバイスとの間でソフトウェアおよびデータを転送できるようにする。通信インターフェース６６の例には、モデム、ネットワーク・インターフェース（Ｅｔｈｅｒｎｅｔ（ＴＭ）カードなど）、通信ポート、またはＰＣＭＣＩＡスロットおよびカードなどを含むことができる。通信インターフェース６６を介して転送されるソフトウェアおよびデータは、たとえば、電子、電磁、光、またはその他の、通信インターフェース６６によって受信可能な信号とすることが可能な、信号の形である。これらの信号は、通信パス（すなわちチャネル）６８を介して通信インターフェース６６に提供される。このチャネル６８は信号を搬送し、ワイヤまたはケーブル、光ファイバ、電話回線、セル式電話リンク、ＲＦリンク、あるいは他の通信チャネル、またはそれらすべてを使用して、実装可能である。
【００４０】
本明細書では、「コンピュータ・プログラム・メディア」、「コンピュータ使用可能メディア」、および「コンピュータ読取可能メディア」という用語は、一般に、メイン・メモリ５２および２次メモリ５４、取り外し可能ストレージ・ドライブ５８、およびハード・ディスク・ドライブ５６にインストールされたハード・ディスクなどの、メディアを言い表すために使用される。
【００４１】
コンピュータ・プログラム（コンピュータ制御論理とも呼ばれる）は、メイン・メモリ５２あるいは２次メモリ５４またはその両方に格納される。コンピュータ・プログラムは、通信インターフェース６６を介して受信することもできる。こうしたコンピュータ・プログラムは、実行された場合、本明細書で論じたような本発明の諸実施形態の機能を、コンピュータ・システムが実行できるようにする。具体的に言えば、コンピュータ・プログラムは、実行された場合、コンピュータ・システムの機能をプロセッサ４４が実行できるようにする。したがって、こうしたコンピュータ・プログラムは、コンピュータ・システムのコントローラを表す。
【００４２】
前述の説明から、本発明の諸実施形態が、ブラウザ・ベースのプロキシ・サーバを使用した動的ウェブ・アプリケーションのカスタマイゼーションおよび配布のための、システム、コンピュータ・プログラム製品、および方法を提供することを理解されよう。特許請求の範囲において、単数形の要素は、特に明示的に言い表されない限り、「唯一無二」を意味するのではなく、むしろ「１つまたは複数」を意味するものと意図される。当業者に現在知られているかまたは後に知られることになる、前述の例示的諸実施形態の諸要素に対するすべての構造的および機能的等価物は、本特許請求の範囲によって包含されることになるものと意図される。本明細書のいかなる特許請求の要素も、「ための手段」または「ためのステップ」という句を使用して明示的に記載されていない限り、米国特許法第１１２条第６段落の下で解釈されるものではない。
【００４３】
以上、本発明の好ましい諸実施形態について詳細に説明してきたが、当業者であれば、示された諸実施形態に対する修正および適合が実行可能であることを理解されよう。
【図１】
2011511974.tif 000003
【図２】
2011511974.tif 000004
【図３】
2011511974.tif 000005
【手続補正書】
【提出日】平成22年8月25日(2010.8.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロキシ・サーバ内にウェブ・ブラウザを埋め込み、それによってプロキシ・ブラウザを形成すること、および
前記プロキシ・サーバ内部で
前記プロキシ・サーバに接続している各クライアント・ブラウザに、前記プロキシ・ブラウザのインスタンスを割り当てるステップと、
前記クライアント・ブラウザに関するセッション情報を維持するステップと、
前記クライアント・ブラウザが前記プロキシ・サーバに要求する場合、前記要求を前記プロキシ・ブラウザの前記インスタンスにリンクするステップと、
によって、アプリケーションを実行するために、前記プロキシ・ブラウザを使用すること、
を含む、少なくとも１つのクライアント・コンピュータ・ソフトウェア・アプリケーションを実行するための方法。
【請求項２】
前記要求が前記クライアント・ブラウザによる第１の要求である場合、前記リンクすることが、
前記プロキシ・ブラウザを介してウェブ・ページを開くこと、
前記ウェブ・ページ上で少なくとも１つのクライアント・コンピュータ・ソフトウェア・アプリケーションを実行すること、および
前記実行の結果として生じる前記ページのコンテンツの一部を、前記クライアント・ブラウザに戻すこと、
を含む、請求項１に記載の方法。
【請求項３】
前記要求が前記クライアント・ブラウザによる第１の要求でない場合、前記実行することが、前記要求を前記ウェブ・ページ上で実行するための動作に変換することを含む、請求項２に記載の方法。
【請求項４】
前記戻すことが、修正済みウェブ・ページを作成することを含む、請求項２に記載の方法。
【請求項５】
前記作成することが、
前記ウェブ・ページから要素を抽出すること、および
前記要素を前記修正済みウェブ・ページと組み合わせること、
を含む、請求項４に記載の方法。
【請求項６】
前記作成することが、前記修正済みウェブ・ページに新しいコンテンツを挿入することを含む、請求項４に記載の方法。
【請求項７】
前記実行することが、次の修正済みウェブ・ページを生成するために、前記プロキシ・ブラウザへの動作セットの適用を決定するように、前記要求を解釈することを含む、請求項２に記載の方法。
【請求項８】
前記ウェブ・ページの前記コンテンツをスキャンすること、および
次の修正済みウェブ・ページを決定すること、
をさらに含む、請求項２に記載の方法。
【請求項９】
プロキシ・サーバ内にウェブ・プラウザを配置し、それによってプロキシ・ブラウザを形成すること、
前記プロキシ・サーバ内のイベント・トランスレータを前記プロキシ・ブラウザに論理的に接続すること、および、
前記プロキシ・サーバ内のトランスコーダを前記プロキシ・ブラウザおよび前記イベント・トランスレータへと論理的にインターフェースすることであって、前記接続することが、前記イベント・トランスレータに、クライアント・ブラウザからの少なくとも１つの要求を、前記プロキシ・ブラウザ内に含まれるウェブ・ページに適用されることになる動作へと変換させることを含む、インターフェースすること、
を含む、プロキシ・サーバ内にウェブ・ブラウザを埋め込む方法。
【請求項１０】
プロキシ・サーバ内に格納されたプロキシ・ブラウザによってクライアント・ブラウザから要求を受信すること、
前記要求を動作に変換すること、
前記動作を前記プロキシ・ブラウザ内のウェブ・ページに適用すること、
前記ウェブ・ページの関連部分を抽出すること、および、
前記抽出された前記ウェブ・ページの関連部分を使用して、前記クライアント・ブラウザによって読み取り可能な出力を生成すること、
を含む、ウェブ・アプリケーションへのアクセスを提供する方法。
【請求項１１】
前記クライアント・ブラウザに関して既存ウェブ・ページのセットが修正される方法を指定し、ウェブ・ページ間をナビゲートするために前記クライアント・ブラウザ内で使用可能な手段を指定するための、アプリケーション記述を作成することをさらに含む、請求項１０に記載の方法。
【請求項１２】
外部ウェブ・サーバに結合されたプロキシ・ブラウザと、
クライアント・ブラウザからの要求を受信するためのイベント・トランスレータと、
前記プロキシ・ブラウザによって前記外部ウェブ・サーバから受信したコンテンツの関連部分を抽出し、前記クライアント・ブラウザに送信される出力を生成するための、トランスコーダと、
を備える、プロキシ・サーバ。
【請求項１３】
前記クライアント・ブラウザに関して既存ウェブ・ページのセットが修正される方法を指定するため、および、ウェブ・ページ間をナビゲートするために前記クライアント・ブラウザ内で使用可能な手段を指定するための、アプリケーション記述コンポーネントと、
前記プロキシ・ブラウザ内にロードされた前記既存ウェブ・ページの前記コンテンツをスキャンし、修正済みウェブ・ページを決定するための、ロード・スクリプト・コンポーネントと、
前記クライアント・ブラウザに送信されることになる前記修正済みウェブ・ページの前記コンテンツを作成する方法を指定するための、クリップ・スクリプト・コンポーネントと、
をさらに備える、請求項１２に記載のプロキシ・サーバ。
【請求項１４】
前記クライアント・ブラウザからの要求を前記プロキシ・ブラウザ内で実行するための動作に解析するための、イベント・スクリプト・コンポーネントをさらに備える、請求項１２に記載のプロキシ・サーバ。
【請求項１５】
コンピュータ読み取り可能プログラムを有するコンピュータ使用可能メディアを備え、前記コンピュータ読み取り可能プログラムは、コンピュータ上で実行された場合、請求項１から１１のいずれか一項に記載の方法を前記コンピュータに実行させる、コンピュータ・プログラム。
【国際調査報告】
2011511974.tif 000006
2011511974.tif 000007
2011511974.tif 000008