(57)【要約】本発明は、ブラウザアプリケーションを介して実行されるソフトウェアアプリケーションにおいてキーボードアクセラレータ(301)を実行可能にするための方法、装置、及び製造物に関する。ブラウザアプリケーションに対してネイティブなキーボードアクセラレータの初期化のような、それ自身の目的のためにブラウザアプリケーションによって利用される前に、キーボードアクセラレータはキーボードデータ(303)をインターセプトすることによって実行可能にされうる。次いで、インターセプトされたキーボードデータは、定義されたリモートアプリケーションキーボードアクセラレータに対応するかどうか判断するために評価され(305)、もしそうならば、リモートアプリケーションファンクションモジュール(309)が、特定の識別されたキーボードアクセラレータにマッピングされる特徴を実行するように呼び出される。次いで、キーボードデータはイベントキューから除去される。
2005505047.tif 000002
【特許請求の範囲】
【請求項１】
ブラウザアプリケーションに対してネイティブなキーボードアクセラレータに対応するキーボードデータを含むアプリケーションレベルキーボードデータをインターセプトするステップと、を有し、前記ブラウザアプリケーションがリモートアプリケーションを実行することができ、
前記キーボードデータが、定義されたリモートアプリケーションキーボードアクセラレータに対応しているかどうか判断するステップと、を有し、
キーボードデータが、定義されたリモートアプリケーションキーボードアクセラレータに対応しているとき、リモートアプリケーションファンクションを呼び出す、
ことを特徴とする方法。
【請求項２】
キーボードデータが、特殊キーを含むキーストロークシーケンスに対応するコードを含む、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記アプリケーションレベルキーボードデータをインターセプトするステップが、イベントキューにおける全てのイベントをスクリーニングすることを含む、ことを特徴とする請求項１に記載の方法。
【請求項４】
ブラウザアプリケーションによって検索される前にキーボードデータを削除するステップを更に有することを特徴とする請求項１に記載の方法。
【請求項５】
リモートアプリケーションファンクションが、java script及びjavaを含むグループから選択されたプログラム言語で書かれたソフトウェアプログラムを含むことを特徴とする請求項１に記載の方法。
【請求項６】
リモートアプリケーションファンクションが、クライアントサイド方式を含むことを特徴とする請求項１に記載の方法。
【請求項７】
リモートアプリケーションファンクションが、サーバサイド方式を含むことを特徴とする請求項１に記載の方法。
【請求項８】
システムイベントキューのイベントを監視するステップと、
定義されたリモートアプリケーションキーボードアクセラレータに対応するイベントを識別するステップと、を有し、該イベントがブラウザアプリケーションに対してネイティブなキーボードアクセラレータに更に対応し、
ファンクションモジュールを呼び出すステップと、を有し、該ファンクションモジュールが、定義されたリモートアプリケーションキーボードアクセラレータにマッピングされ、
システムイベントキューからイベントを除去するステップと、
を有することを特徴とする方法。
【請求項９】
前記ファンクションモジュールが、java script及びjavaを含むグループから選択されたプログラム言語で書かれたソフトウェアプログラムを含むことを特徴とする請求項８に記載の方法。
【請求項１０】
イベントが、アプリケーションレベルキーボードデータを含むことを特徴とする請求項８に記載の方法。
【請求項１１】
イベントが、ブラウザアプリケーションによって検索される前に、システムイベントキューから除去されることを特徴とする請求項８に記載の方法。
【請求項１２】
ファンクションモジュールが、クライアントサイド方式を含むことを特徴とする請求項８に記載の方法。
【請求項１３】
ファンクションモジュールが、サーバサイド方式を含むことを特徴とする請求項８に記載の方法。
【請求項１４】
プロセッサと、
前記プロセッサに接続され、複数のマシン命令をストアするメモリと、
前記プロセッサに接続され、コミュニケーションリンクを介してネットワークに接続することができる通信インターフェースと、を有し、
装置が、プロセッサによるマシン命令の実行により、プロセッサによって実行されるブラウザアプリケーションに対してネイティブなキーボードアクセラレータに対応するキーボードデータを含むアプリケーションレベルキーボードデータをインターセプトし、キーボードデータが、定義されたリモートアプリケーションキーボードアクセラレータに対応するかどうか判断し、キーボードデータが、定義されたリモートアプリケーションキーボードアクセラレータに対応するとの判断に応答してリモートアプリケーションファンクションを呼び出すことができる、
ことを特徴とする装置。
【請求項１５】
前記キーボードデータが、特殊キーを含むキーボードシーケンスに対応するコードを含むことを特徴とする請求項１４に記載の装置。
【請求項１６】
アプリケーションレベルキーボードデータをインターセプトすることが、システムイベントキューにおいてイベントを監視するための命令を実行することを含むことを特徴とする請求項１４に記載の装置。
【請求項１７】
装置が、プロセッサによるマシン命令の実行により更に、ブラウザアプリケーションによってキーボードデータの識別の前にキーボードデータを消去することができる、ことを特徴とする請求項１４に記載の装置。
【請求項１８】
前記リモートアプリケーションファンクションが、java script及びjavaを含むグループから選択されたプログラム言語で書かれたマシン読取可能命令のセットを有することを特徴とする請求項１４に記載の方法。
【請求項１９】
プロセッサと、
前記プロセッサに接続され、複数のマシン命令をストアするメモリと、
前記プロセッサに接続され、コミュニケーションリンクを介してネットワークに接続することができる通信インターフェースと、を有し、
装置が、プロセッサによるマシン命令の実行により、システムイベントキューのイベントを監視し、定義されたリモートアプリケーションキーボードアクセラレータに対応するイベントを識別し、イベントが更にブラウザアプリケーションに対してネイティブなキーボードアクセラレータに対応し、定義されたリモートアプリケーションキーボードアクセラレータにマッピングされたファンクションモジュールを呼び出し、システムイベントキューからのイベントを除去することができる、
ことを特徴とする装置。
【請求項２０】
前記ファンクションモジュールが、java script及びjavaを含むグループから選択されたプログラム言語で書かれたソフトウェアプログラムを有することを特徴とする請求項１９に記載の方法。
【請求項２１】
前記イベントが、アプリケーションレベルキーボードデータを含むことを特徴とする請求項１９に記載の装置。
【請求項２２】
装置が、プロセッサによるマシン命令の実行により更に、ブラウザアプリケーションによってキーボードデータの識別の前にキーボードデータを消去することができる、ことを特徴とする請求項１９に記載の装置。
【請求項２３】
マシンによって実行されたとき、マシンが、
ブラウザアプリケーションに対してネイティブなキーボードアクセラレータに対応するキーボードデータを含む、アプリケーションレベルキーボードデータをインターセプトし、前記ブラウザアプリケーションがリモートアプリケーションを実行することができ、
前記キーボードデータが、定義されたリモートアプリケーションキーボードアクセラレータに対応するかどうか判断し、
前記キーボードデータが、定義されたリモートアプリケーションキーボードアクセラレータに対応するとき、リモートアプリケーションファンクションを呼び出す、
ことができる命令を提供するマシン読取可能媒体を有する製造物。
【請求項２４】
前記キーボードデータが、特殊キーを含むキーストロークシーケンスに対応したコードを有する、ことを特徴とする請求項２３に記載の製造物。
【請求項２５】
前記アプリケーションレベルキーボードデータをインターセプトすることが、イベントキューの全てのイベントをスクリーニングすることを含むことを特徴とする請求項２３に記載の製造物。
【請求項２６】
前記リモートアプリケーションファンクションが、java script及びjavaを含むグループから選択されたプログラム言語で書かれたソフトウェアプログラムを有することを特徴とする請求項２３に記載の製造物。
【請求項２７】
マシンによって実行されるときに、マシンによりブラウザアプリケーションによって検索される前にキーボードデータを削除することが更にできる命令を、前記マシン読取可能媒体が更に提供することを特徴とする請求項２３に記載の製造物。
【請求項２８】
前記命令が、ActiveXコントロールソフトウェアプログラムを含むことを特徴とする請求項２３に記載の製造物。
【請求項２９】
前記命令が、プラグインソフトウェアプログラムを含むことを特徴とする請求項２３に記載の製造物。
【請求項３０】
マシンによって実行されたとき、マシンが、
システムイベントキューのイベントを監視し、
定義されたリモートアプリケーションキーボードアクセラレータに対応するイベントを識別し、該イベントが更に、ブラウザアプリケーションに対してネイティブなキーボードアクセラレータに対応し、
定義されたリモートアプリケーションキーボードアクセラレータにマッピングされたファンクションモジュールを呼び出し、
システムイベントキューからイベントを除去する、
ことができる命令を提供するマシン読取可能媒体を有する製造物。
【請求項３１】
前記ファンクションモジュールが、java script及びjavaを含むグループから選択されたプログラム言語で書かれたソフトウェアプログラムを有することを特徴とする請求項３０に記載の製造物。
【請求項３２】
前記イベントが、アプリケーションレベルキーボードデータを含む、ことを特徴とする請求項３０に記載の製造物。
【請求項３３】
前記イベントが、ブラウザアプリケーションによって検索される前に、システムイベントキューから除去されることを特徴とする請求項３０に記載の製造物。
【請求項３４】
前記命令が、ActiveXコントロールソフトウェアプログラムを含むことを特徴とする請求項３０に記載の製造物。
【請求項３５】
前記命令が、プラグインソフトウェアプログラムを含むことを特徴とする請求項３０に記載の製造物。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、キーボードアクセラレータに関し、特に限定することなく、ブラウザアプリケーションを介して実行されるソフトウェアアプリケーションにおいてキーボードアクセラレータを実行可能にするための方法、装置、及び製造物に関する。
【背景技術】
【０００２】
現在のコンピュータユーザは典型的には、コンピュータのプロセッサによって実行される特定のソフトウェアアプリケーションとのインターフェースとなる、キーボード、マウス、スタイラス、又は同様なもののようなそれらの処理で複数の入力デバイスを有する。これらの相互作用は、ソフトウェアアプリケーションによってユーザのための情報又はデータを入力すること、又は、テキストをフォーマットし、新しい若しくは既存のファイルを開き、又は、ドキュメント若しくはファイル若しくは同様のものの全部若しくは一部を保存、複写若しくは印刷するソフトウェアアプリケーション内の所定のファンクション又はコマンドの選択を含む。
【０００３】
多くの場合、ソフトウェアアプリケーションは、オブジェクトを表す複数のアイコンを備えたグラフィカルユーザインターフェース（「ＵＩ」）を含み、それは、例えば、マウスで所望のアイコンを単に「クリックする」ことにより所定のコンピュータアクションを制御するようにユーザによって操作することができる。例えば、ワープロアプリケーションソフトウェアは、ユーザが肉太活字（ボールドフェース）テキスト属性にトグルすることができるような肉太大文字「Ｂ」のアイコンを備えたグラフィカルＵＩを提供する。特定のアイコンをクリックするためにキーボードからマウスに手をしばしば離し、次いで、情報を入力し続けるためにキーボードに彼らの手を再設置することにより、多くのコンピュータユーザの効率が損なわれるので、多くのアプリケーションは、キーボードアクセラレータを可能にする。キーボードアクセラレータにより、例えば「Ctrl+B」のような特定のキーシーケンスをタイピングすることにより、アイコンによって表された同じコマンド又はファンクションをユーザが初期化することができる。「Ctrl+B」は、ボールドフェーステキスト属性のためのトグルとしてウィンドウズ（登録商標）アプリケーションでは殆ど一般的に使用されている。「Ctrl」キーと「B」キーとをキーボードで同時に押すことにより、上述の「Ｂ」アイコンを繰り返し「クリックする」のと同じ仕方でボールドフェーステキスト属性のトグルをオン及びオフとする。同様に、ドキュメント若しくはファイルを保存し（例えば、Ctrl+S）、現在のドキュメントを印刷し（例えば、Ctrl+P）、その他同様に、特定のキーストロークコンビネーションを使用しうる。かかる多くのキーストロークコンビネーションは、デフォルトとして定義されており、コンピュータシステムで「稼働する」１又はそれ以上のアプリケーションに対して固有である。
【０００４】
キーストローク又はマウスボタンクリックのようなユーザによる各入力アクション（「イベント」）は一般的には、現在のオペレーションの完了の次のオペレーティングシステム又はソフトウェアアプリケーションによって検索されるまで、システムイベントキューにストアされる。ウィンドウズ（登録商標）オペレーティングシステムのような最近のオペレーティングシステムのコンテキストでは、種々のソフトウェアアプリケーションが同時に「稼働している」ことは読者には明らかであろう。従って、ユーザは、入力したいアクティブなアプリケーションを識別する必要がある。例えばウィンドウズ（登録商標）オペレーティングシステムでは、アクティブアプリケーションは、ユーザによって選択されたアクティブウィンドウに対応し、ユーザからの入力を受け付け、その機能をそれに応じて実行する。
【発明の開示】
【課題を解決するための手段】
【０００５】
近年、消費者と組織の間でのコンピュータの急増は、インターネット、ＷＡＮ、ＬＡＮ、イントラネットその他のようなネットワークを介して繋がれた内部組織プロシージャやエレクトリックコマースにおける増加に寄与する。このようなソフトウェアアプリケーションは、しばしばある場所に維持され、ネットワークを介してサーバ又は他のコンピュータによって消費者又はインターネットユーザのような複数のエンドユーザに「奉仕（served）」する。以下、これらのソフトウェアアプリケーションを「リモートアプリケーション」と称する。これらの状況では、リモートアプリケーション自身が、サーバによってアクセス可能なメモリ又はストレージロケーションに最初に記憶されたままであり、リモートアプリケーションとのエンドユーザ相互作用が、情報のパケットのようなネットワークを介して転送される通信を介して容易になる。情報のパケットが、典型的にはエンドユーザのコンピュータにローカルに保存された、ブラウザアプリケーションを介してリモートアプリケーションの実行を可能にする。
【０００６】
ブラウザアプリケーションは、ネットワークを介して転送された解釈コード（例えば、ハイパーテキスト・マークアップ・ランゲージ「HTML」、java、java scriptなど）によって、エンドユーザがドキュメントを見たり、これらのドキュメントに関するファイルや他のソフトウェアにアクセスすることができるソフトウェアを含む。ブラウザアプリケーションは、リモートアプリケーションと相互作用している間、エンドユーザのコンピュータで「稼働する」アクティブアプリケーションを有する。キーストロークコンビネーションその他のイベントのようなかかるユーザ入力は、ブラウザアプリケーションに入力するように処理される。
【０００７】
キーストロークコンビネーションが、ブラウザアプリケーションによって検索され、それ自身の機能を実行するのに用いられるため、前述の結果の通り、エンドユーザのブラウザアプリケーションを介してリモートアプリケーションと相互作用するエンドユーザは、せいぜい、リモートアプリケーション内でタスクを完遂するためにキーボードアクセラレータを使用することに制限される。例えば、リモートアプリケーションプロバイダは、新しいレコードを開くためのコマンドに関連するように「Ctrl+N」のようなデフォルトキーストロークシーケンスを定義することができる。しかしながら、リモートアプリケーションを実行することができるブラウザアプリケーションは、例えば、イベントキューからキーストローク「Ctrl+N」を検索し、新しいブラウザページを開く。ネイティブブラウザコマンドにマッピングされていないこれらのキーシーケンスが、あるケースにおいてリモートアプリケーションに関するキーボードアクセラレータとして使用されたとき、種々のブラウザアプリケーション又は特定のブラウザアプリケーションの種々のバージョンは、異なるコマンドにマッピングされた異なるキーシーケンスを有し、これにより、リモートアプリケーションプロバイダは、全ての可能性のあるエンドユーザに対して効果的に機能するキーボードアクセラレータのコマンドセットを与えることができない。
【発明を実施するための最良の形態】
【０００８】
ブラウザアプリケーションを介して実行されるソフトウェアアプリケーションにおけるキーボードアクセラレータを実行するための方法、装置、及び製造物の実施形態をここに詳細に記載する。以下の記述において、本発明の実施形態の理解を通して、種々のシステムコンポーネントの識別のような、多数の特定の詳細な記述を提供する。しかしながら、本発明が１又はそれ以上の特定の実施形態、又は他の方法、コンポーネント、材料などなしで実施できることを当業者は認識している。また他の実施形態では、周知の構造、材料又はオペレーションが示されておらず、本発明の種々の実施形態の態様が不明確になるのを避けるために詳細には記載していない。
【０００９】
この明細書において、「ある実施形態」又は「一実施形態」という表現は、その実施形態と関連する特定の特徴、構造又は特性が本発明の少なくとも１つの実施形態に含まれていることを意味する。かくして、この明細書を通して種々の場面で「ある実施形態で」又は「一実施形態で」という表現の出現は、同じ実施形態を全てみる必要はない。更に、特定の特徴、構造、又は特性は、１又はそれ以上の実施形態で適当な仕方で結合されうる。
【００１０】
概観すると、本発明の実施形態は、ブラウザアプリケーションによって利用されうる前に、リモートアプリケーションに対して特定のキーボードアクセラレータファンクションを初期化するためのキーボードデータを使用し、キーボードデータをインターセプトすることによりリモートアプリケーション（例えば、クライアントマシンでブラウザアプリケーションを介して実行されるアプリケーション）でキーボードアクセラレータを利用可能にする。本発明のある実施形態では、キーボードから生成されたイベントは、システムイベントキューにおいて監視され、システム又はアクティブアプリケーションがエベント及びそれによる動作を検索することができるまで、イベントは保持される。これらのイベントをモニタリングすることにより、本発明の実施形態は、イベントが定義されたリモートアプリケーションキーボードアクセラレータに対応するかどうか判断することができ、もしそうならば、リモートアプリケーションのオブジェクトを実行するためにリモートアプリケーションファンクションを呼び出す。ある実施形態では、定義されたリモートアプリケーションキーボードアクセラレータに対応するイベントは、システムイベントキューから除去され、その結果、ブラウザアプリケーションは、これらのイベントを２度と受け取ることができず、まるでそれらが存在しないかのように機能する。本発明の実施形態は、本発明による方法論を実行するためにクライアントマシンにダウンロードされ得るソフトウェアモジュール（例えば、ActiveXコントロールソフトウェアプログラム、プラグインソフトウェアプログラムなど）を提供することにより実行されうる。例示した実施形態の他の特徴は、添付した図面を参照して上述及び添付した特許請求の範囲、及び発明の詳細な説明から明らかである。
【００１１】
次いで、図を参照すると、特に図１を参照すると、本発明によるネットワーク環境のある実施形態のブロック図が例示されている。ある実施形態では、複数のクライアント１０１，１０３及び１０５は、個々の通信リンク１２３，１２５及び１２７を介してネットワーク１０９と接続可能であり、サーバ１０７は、通信リンク１２９を介してネットワーク１０９と接続することができる。
【００１２】
ある実施形態は、通信リンク１２３，１２５，１２７及び１２９は、互いに情報を送受信するために、クライアント１０１，１０３及び１０５及びサーバ１０７それぞれによって利用可能である。ある実施形態では、通信リンク１２３，１２５，１２７及び１２９は、例えば、ケーブル、ワイヤ、光ファイバなどのような物理接続を含み得る。別の実施形態では、通信リンク１２３，１２５，１２７及び１２９は、環境又は、上述の如何なる組み合わせを介して伝送される、例えば、無線リンク、衛星通信、光信号などのワイヤレスリンクを含み得る。ある実施形態では、ネットワーク１０９は、複数の異なるデバイスを接続するいかなるタイプの通信ネットワークであってもよく、例えば、限定されないが、インターネット、ＷＡＮ、ＬＡＮ、イントラネットなどである。
【００１３】
ある実施形態では、サーバ１０７は、サーバ１０７内のメモリ又は他のストレージロケーションにストアされ、アクセス可能な複数のマシン命令を実行するように構成される。ある実施形態では、複数のマシン命令は、リモートアプリケーション（上述のように、クライアント１０１，１０３及び１０５から離れた場所に最初にストアされ、ブラウザアプリケーションのような別のアクティブアプリケーションを介してクライアント１０１，１０３及び１０５によって実行されるので、アプリケーションは、ここでは「リモートアプリケーション」と呼ぶ。）を含み得る。リモートアプリケーションは、ネットワーク１０９のようなネットワーク接続を介して相互作用するように設計されたいかなるタイプのアプリケーションソフトウェアをも含み得る。ある実施形態では、リモートアプリケーションは、リモートアプリケーションに関する特定のオペレーション又は特徴を実施するために１又はそれ以上のファンクションモジュール（又は、「リモートアプリケーションファンクション」とここで呼ぶ）を含む。本発明によるある実施形態では、ファンクションモジュールは、サーバ１０７から１又はそれ以上のクライアント１０１，１０３及び１０５にネットワーク１０９を介して転送されるjava script code及び／又はjava codeを含む。
【００１４】
ある実施形態では、サーバ１０７は更に、キーボード利用可能プログラムを有するマシン命令を含み、アクセスする。ある実施形態では、キーボード利用可能プログラムは、ActiveXコントロールソフトウェアプログラム、プラグインソフトウェアプログラムなどの含む。ある実施形態では、キーボード利用可能プログラムは、ネットワーク１０９、及び、クライアントの個々の通信リンク１２３，１２５及び１２７それぞれを介して１又はそれ以上のクライアント１０１，１０３及び１０５によってダウンロードされうる。
【００１５】
ある実施形態では、各クライアント１０１，１０３及び１０５は、クライアント１０１，１０３及び１０５内のメモリ又は他のストレージロケーションにストアされ、アクセス可能な、複数のマシン命令を実行するように構成され得る。ある実施形態では、複数のマシン命令は、オペレーティングシステム（例えば、ウィンドウズ（登録商標）オペレーティングシステム）及びブラウザアプリケーション（例えば、マイクロソフト（登録商標）InternetExplorer、Netscape Navigator（登録商標）など）を含む複数のソフトウェアアプリケーションを包含しうる。
【００１６】
ある実施形態では、各クライアント１０１，１０３及び１０５は、キーボードリンク１１７，１１９及び１２１をそれぞれ介して、キーボード１１１，１１３及び１１５にそれぞれ接続される。各キーボードリンク１１７，１１９及び１２１は、ユーザ（例えば、キーを押すこと）によって生成され、キーストロークコンビネーションに対応する信号を、各クライアント１０１，１０３及び１０５に通信可能にする。一般に、各キーストロークは、キーボード１１１，１１３及び１１５内のキーボードコントローラ（図示せず）に送信される信号を生成する。キーボードコントローラは、ユーザによって押されたキーを一意的に識別するスキャンコードを生成するためのキーストローク信号を処理し、各クライアント１０１，１０３及び１０５の基本入出力システム（「ＢＩＯＳ」）によって読みとられるように、キーボード１１１，１１３及び１１５内のメモリバッファ（図示せず）にスキャンコードをストアする。ＢＩＯＳは、スキャンコードを読みとり、該スキャンコードをキーボードデータ（例えばアスキー（ASCII）コード、又は、ファンクションキーに対応する特別なコード）に翻訳し、イベントキューにおいてキーボードデータをストアし、処理のために各クライアント１０１，１０３及び１０５のオペレーティングシステム又はアプリケーションによって検索されうる。ある実施形態では、キーボードデータの各要素は、イベントを表し、該イベントは、他のイベントと結合して、リモートアプリケーションを実施するように使用されるブラウザアプリケーションに対するキーボードアクセラレータネイティブ及び／又はリモートアプリケーションに関して定義されたキーボードアクセラレータを表しうる。
【００１７】
次いで、主に図２を参照すると、本発明によるクライアント１０１，１０３及び１０５、及び／又はサーバ１０７の典型的なマシン２０１のある実施形態を図示するブロック図を示す。典型的には、クライアント１０１，１０３及び１０５は、例えば、デスクトップコンピュータ若しくはワークステーション、ラップトップコンピュータ、又はパーソナルコンピュータを含む種々のタイプのマシンを含み、サーバ１０７は典型的には、複数の他のマシンと通信するように設計されたコンピュータサーバ若しくは同様のタイプのサーバハードウェアを含む。ある実施形態では、マシン２０１は、バス２０７に接続されたプロセッサ２０３を含むコンピュータである。ある実施形態では、メモリ２０５、ストレージ２１１，ディスプレィコントローラ２０９，通信インターフェース２１３、入力／出力コントローラ２１５、及びオーディオコントローラ２２３がまたバス２０７に接続される。
【００１８】
ある実施形態では、マシン２０１は、通信インターフェース２１３を介して外部システムとインターフェースする。通信インターフェース２１３は、種々の変調された信号、ワイヤレス電話信号等と適合する無線トランシーバを含んでもよい。通信インターフェース２１３はまた、アナログモデム、統合サービスディジタル通信網（「ＩＳＤＮ」）モデム、ケーブルモデム、ディジタル加入者回線（「ＤＳＬ」）モデム、Ｔ−１ラインインターフェース、Ｔ−３ラインインターフェース、光キャリアインターフェース（例えば、ＯＣ−３）、トークンリングインターフェース、衛星トランスミッションインターフェース、無線インターフェース、又は、デバイスを他のデバイスに接続するための他のインターフェースを含み得る。
【００１９】
ある実施形態では、搬送波信号２２１は、通信インターフェース２１３とネットワーク１０９との間で受信／転送される。ある実施形態では、通信信号２２１は、他のコンピュータシステム、ネットワークハブ、ルータなどとマシン２０１をインターフェースするように使用されうる。ある実施形態では、搬送波信号２２１は、ワイヤ、ケーブル、光ファイバ、又は環境などを介して転送されうるマシン読取可能媒体であってよい。
【００２０】
ある実施形態では、プロセッサ２０３は、例えば、Intel x86プロセッサ、又はペンティアム（登録商標）ファミリープロセッサ、モトローラファミリープロセッサなどに限定されないが、かかるような在来のプロセッサであってよい。メモリ２０５は、ダイナミックランダムアクセスメモリ（「ＤＲＡＭ」）であってよく、スタティックランダムアクセスメモリ（「ＳＲＡＭ」）を含み得る。ディスプレィコントローラ２０９は、ブラウン管（「ＣＲＴ」）、液晶ディスプレィ（「ＬＣＤ」）、アクティブマトリックスディスプレィ、テレビモニタなどであってよいディスプレィ２１９を在来の仕方で制御する。入力／出力コントローラ２１５に接続された入力／出力デバイス２１７は、キーボード、ディスクドライブ、プリンタ、スキャナ、又は、テレビリモート、マウス、トラックボール、トラックパッド、ジョイスティック等を含む他の入力／出力デバイスであってよい。ある実施形態では、オーディオコントローラ２２３は、例えば、オーディオスピーカ、ヘッドフォン、オーディオレシーバ、アンプなどを含み得るオーディオ主力２２７を在来の仕方で制御する。ある実施形態では、オーディオコントローラ２２３はまた、例えば、マイクロフォン、又は、オーディオ若しくは音楽デバイスなどからの入力を含み得るオーディオ入力２２５を在来の仕方で制御する。
【００２１】
ある実施形態では、ストレージ２２１は、例えば、磁性ハードディスク、フロッピー（登録商標）ディスク、光ディスク、読取専用メモリコンポーネント（「ＲＯＭ」）、スマートカード、又は、データのためのストレージの他のフォームに限定されないがそれらのようなマシン読取可能メディアを含み得る。ある実施形態では、ストレージ２１１は、リムーバブルメディア、読取専用メモリ、読み書き可能メモリなどを含み得る。あるデータは、コンピュータシステム２０１でソフトウェアの実行中、メモリ２０５内に直接メモリアクセスすることにより書き込まれる。ソフトウェアは、ストレージ２１１，メモリ２０５に存在し、モデム又は通信インターフェース２１３を介して転送又は受信されうる。本明細書の目的に関して、用語「マシン読取可能メディア（媒体）」は、ストリングデータ、情報、又は、プロセッサ２０３が本発明の方法を実行するようにプロセッサ２０３によって実行される命令又はオペレーションのシーケンスをエンコーディングすることができる如何なる媒体をも含み得る。用語「マシン読取可能メディア」は、例えば、固体物理メモリ；ＲＯＭ；ランダムアクセスメモリ（「ＲＡＭ」）；磁気ディスクストレージメディア；光ストレージメディア；フラッシュメモリデバイス；電子、光、音響その他の形態の伝播信号（例えば、キャリアトーン、赤外線信号、及びディジタル信号）；その他同様のものを含むことを理解すべきである。
【００２２】
引き続き図１及び２を参照すると、本発明のある実施形態では、複数のクライアント１０１，１０３及び１０５のエンドユーザの一人が、例えば、メモリ２０５にストアされたブラウザアプリケーションを初期化しうる。プロセッサ２０３によるブラウザアプリケーションを包含する命令の実行は、クライアント１０１，１０３及び１０５が、通信インターフェース２１３、及び各通信リンク１２３，１２５及び１２７を介してネットワーク１０９と接続できるようにでき得る。ＵＲＬ又は他の識別特性を使用して、クライアント１０１，１０３及び１０５は、サーバ１０７のようなネットワークのノードとリンクし、例えばサーバ１０７によって維持されるページに関するリクエストを送信する。ページ自身は、ＨＴＭＬファイルを含み、ある実施形態では、java script code及び／又はjava codeを含み得る。ある実施形態では、java script code及び／又はjava codeは、リモートアプリケーションと関係するファンクションモジュールを有する。ある実施形態では、ページは、本発明によるサーバ１０７によって維持されるリモートアプリケーションの一部に対応し、ファンクションモジュール及びキーボード実施可能プログラムに対するリファレンスを含み得る。
【００２３】
ある実施形態では、クライアント１０１，１０３及び１０５によって送信されたページに関するリクエストに応じて、サーバ１０７は、ファンクションモジュール（例えば、java script code及び／又はjava code）を含むＨＴＭＬページをクライアント１０１，１０３及び１０５に送信する。ある実施形態では、ブラウザアプリケーションは、クライアント１０１，１０３及び１０５のディスプレィ（例えば、ディスプレィ２１９）にＨＴＭＬコードを再アセンブルするように構成しうる。ブラウザアプリケーションはまた、ＨＴＭＬページに包含されるjava script code及び／又はjava codeを翻訳するための命令を含み得る。クライアント１０１，１０３及び１０５のエンドユーザは、次いで、ページに埋め込まれたＨＴＭＬハイパーリンクを選択すること、又は、java script code及び／又はjava codeプログラミングを初期化するイベントを入力することのいずれかにより、リモートアプリケーションと相互作用する。
【００２４】
ある実施形態では、サーバ１０７はまた、キーボード実施可能プログラムをクライアント１０１，１０３及び１０５に送信することによりクライアント１０１，１０３及び１０５からのリクエストに応答する。前述したように、キーボード実施可能プログラムは、ActiveXコントロールソフトウェアプログラム、プラグインソフトウェアプログラムなどを含み得る。この説明の目的のために、ウィンドウズ（登録商標）オペレーティングシステム及びマイクロソフト（登録商標）InternetExplorerブラウザアプリケーションを想定する。このコンテキストでは、キーボード実施可能プログラムは、例えばC++プログラミング言語で書かれたActiveXコントロールを含み得る。ある実施形態では、キーボード実施可能プログラムがクライアント１０１，１０３及び１０５にインストールされていないとき、ブラウザアプリケーションは、キーボード実施可能プログラムをダウンロードし、例えば、ダイナミックリンクライブラリ（「ＤＬＬ」）としてクライアント１０１，１０３及び１０５のメモリロケーション（例えば、メモリ２０５）にそれをストアする。本発明によるある実施形態では、ＨＴＭＬページは、クライアントサイド方式又はサーバサイド方式に対するコールを初期化するため、キーボード実施可能プログラム並びにファンクションモジュールを参照する。ブラウザアプリケーションのコンフィギュレーションに依存して、エンドユーザがキーボード実施可能プログラムのダウンロードを明確に行う必要があることは読者には明らかであろう。
【００２５】
次いで、図３を参照すると、本発明のある実施形態を実行する意メントのフローを図示したフローチャートを示す。ユーザがキーコンビネーション（例えば、ブロック３０１参照）を押すと、イベントは、以前に議論したように、システムイベントキューに生成され、維持される。イベントは、コンピュータシステムをシャットダウン及びリブートするためのコマンドとして多くのコンピュータシステムユーザに知られている「Ctrl+Alt+Del」を含むキーコンビネーションのようなシステムレベルイベント（例えば、システムレベルキーボードデータ）を含み得る。他の実施形態では、イベントは、アプリケーションレベルイベントを含み、該イベントは、アクティブアプリケーションに入力するように処理される。アプリケーションレベルイベントは、インターンの際に、ファンクションモジュールにマッピングされ、キーボードアクセラレータに対応し得るアプリケーションレベルキーボードデータ（例えば、「Ctrl+Ｎ」を含むキーコンビネーション）を含み得る。
【００２６】
本発明によるある実施形態では、クライアント１０１，１０３及び１０５のプロセッサ２０３によるキーボード実施可能プログラムを含む命令の実行は、アクティブアプリケーション（例えば、ブラウザアプリケーション）によって検索され、又はアクティブアプリケーションにパスされる前に、クライアントがアプリケーションレベルキーボードデータ（例えば、プロセスブロック３０３参照）をインターセプトすることができる。ある実施形態では、アプリケーションレベルキーボードデータが、定義されたリモートアプリケーションキーボードアクセラレータ（例えば、プロセスブロック３０５参照）に対応するかどうか判断するために、アプリケーションレベルキーボードデータをインターセプトすることは、システムイベントキューにおいて全てのイベントをスキャンニング又は監視することを含む。定義されたリモートアプリケーションキーボードアクセラレータに対応しないそのキーボードデータは、それ自身の目的（例えば、プロセスブロック３０７参照）のために使用されうるブラウザアプリケーションに渡される。それはまた、ブラウザアプリケーションに対する定義されたキーボードアクセラレータファンクションネイティブをも含む。ある実施形態では、キーボードデータがリモートアプリケーションキーボードアクセラレータ（例えば、ブロック３０５参照）と対応するとき、特定のキーボードアクセラレータにマッピングされたファンクションモジュールが、リモートアプリケーション特性（例えば、プロセスブロック３０９参照）を実行するために呼び出される。ある実施形態では、リモートアプリケーション特性を実行するために呼び出されたファンクションモジュールは、各クライアント１０１，１０３及び１０５のプロセッサ２０３によって実行される、クライアントサイド方式を含む。他の実施形態では、リモートアプリケーション特性を実行するために呼び出されたファンクションモジュールは、サーバ１０７のプロセッサ２０３によって実行される、サーバサイド方式を含む。
【００２７】
前に簡単に例示した目的に関して、例えば、キーストロークコンビネーション「Ctrl+N」が、新しいレコードを開くような、リモートアプリケーションにおけるファンクションにマッピングされる定義されたリモートアプリケーションキーボードアクセラレータに対応すると仮定する。ユーザが、キーコンビネーション「Ctrl+N」を押すとき（例えば、ブロック３０１参照）、イベントが生成され、システムイベントキューに維持される。このイベントがインターセプトされないならば（例えば、ブロック３０３参照）、アクティブアプリケーション（例えば、ブラウザアプリケーション）によって検索され、例えば（「Ctrl+N」キーコンビネーションが、このブラウザファンクションにマッピングされたネイティブブラウザキーボードアクセラレータに対応すると仮定すると）、新しいブラウザウィンドウを開くのに使用される。「Ctrl+N」イベントがインターセプトされた場合、それが定義されたリモートアプリケーションキーボードアクセラレータに対応するか否かを判断するために評価され得る（例えば、ブロック３０５参照）。この例では、対応しており、その結果、リモートアプリケーションファンクションは、このキーボードアクセラレータにマッピングされた特徴を実行する（例えば、新しいレコードを開く）ために呼び出される（例えば、ブロック３０９参照）。リモートアプリケーションファンクションは、上述したような、サーバ１０７によって送信されるHTMLページに包含される、例えばjava scriptプログラムを有してもよい。リモートアプリケーションファンクションの実行は、マッピングされた特徴の実行を容易にするために、ネットワークリンクのクライアントサイド方式又はネットワークリンクのサーバサイド方式を呼び出すことができる。どんな数のキーストロークコンビネーションも、キーボードアクセラレータとして定義することができ、リモートアプリケーションの特定の特徴にマッピングすることができることは、読者には明らかであろう。例えば、「Alt+C」をレコードをコピーするための機能としてアクセラレータにマッピングしてもよい。本発明のある実施形態では、キーボードアクセラレータは、ファンクションキー、方向キーなどの特殊なキーを含むように定義してもよい。本発明の実施形態はまた、特定の公衆ユーザの間にあるリモートアプリケーションプロバイダが、これらのネイティブブラウザキーボードアクセラレータファンクションに触れないままにすることもでき、例えば、ポピュラーなブラウザアプリケーションにおいて、キーストロークコンビネーション「Ctrl+F」を、現在のブラウザページのテキストストリングを見つける機能にマッピングするようなものである。更に、これらのネイティブブラウザ特性は、リモートアプリケーションとの相互作用のコンテキスト内で非常によい特徴である。
【００２８】
本発明を限られた実施形態のコンテキストでここに記載してきたが、本発明は、発明の本質的な特徴の精神から逸脱することなく多くの形態をとることができる。それ故、要約及び開示全体に例示された実施形態は、全て例であり、これに限定されるものではない。本発明の範囲は、上述の実施形態ではなく、特許請求の範囲によって示される。特許請求の範囲の同じ意味内での変更と均等の範囲とは、発明の範囲に包含される。
【００２９】
図面では、本発明を制限することなく、種々の図を通して同じ参照番号は同じパーツを参照する。
【図面の簡単な説明】
【００３０】
【図１】本発明によるネットワーク環境の一実施形態を図示するブロック図である。
【図２】本発明によるクライアント又はサーバのコンピュータシステムの一実施形態を図示するブロック図である。
【図３】本発明の一実施形態で実行されるイベントのフローを図示したフローチャートである。
【図１】
2005505047.tif 000003
【図２】
2005505047.tif 000004
【図３】
2005505047.tif 000005
【国際公開パンフレット】
2005505047.tif 000006
2005505047.tif 000007
2005505047.tif 000008
2005505047.tif 000009
2005505047.tif 000010
2005505047.tif 000011
2005505047.tif 000012
2005505047.tif 000013
2005505047.tif 000014
2005505047.tif 000015
2005505047.tif 000016
2005505047.tif 000017
2005505047.tif 000018
2005505047.tif 000019
2005505047.tif 000020
2005505047.tif 000021
2005505047.tif 000022
2005505047.tif 000023
2005505047.tif 000024
2005505047.tif 000025
2005505047.tif 000026
2005505047.tif 000027
【国際調査報告】
2005505047.tif 000028
2005505047.tif 000029