JP2000200180A - 組込みシステム内における子グラフィックス・コンテキストを使用したディスプレイ・ウィジェット・インタラクション - Google Patents
組込みシステム内における子グラフィックス・コンテキストを使用したディスプレイ・ウィジェット・インタラクションInfo
- Publication number
- JP2000200180A JP2000200180A JP34033699A JP34033699A JP2000200180A JP 2000200180 A JP2000200180 A JP 2000200180A JP 34033699 A JP34033699 A JP 34033699A JP 34033699 A JP34033699 A JP 34033699A JP 2000200180 A JP2000200180 A JP 2000200180A
- Authority
- JP
- Japan
- Prior art keywords
- context
- browser
- child
- parent
- reactive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
- Memory System (AREA)
Abstract
(57)【要約】 (修正有)
【課題】ブラウザの各アプレット(またはこれに類する
エレメント)のための独立した子コンテキストをインプ
リメントする。 【解決手段】ブラウザによって実行される各アプレット
は対応する独立した子コンテキストを有し、それらは関
連するメモリ・バッファを有する。更に、各子コンテキ
ストが指す親コンテキストを、ブラウザは有する。グラ
フィックをウィジェットを通じて表示する際、ウィジェ
ットはグラフィックをアプレットの子コンテキスト内で
描画し、かつ、“ダメージ”フラグを子コンテキスト内
にセットする。ブラウザが自身のメイン・ブラウザ・ル
ープを実施する際、ブラウザは各エレメントのダメージ
・フラグをチェックし、それを検出した場合、子バッフ
ァへの書込みがあったことと、親バッファを更新する必
要があることと判断する。
エレメント)のための独立した子コンテキストをインプ
リメントする。 【解決手段】ブラウザによって実行される各アプレット
は対応する独立した子コンテキストを有し、それらは関
連するメモリ・バッファを有する。更に、各子コンテキ
ストが指す親コンテキストを、ブラウザは有する。グラ
フィックをウィジェットを通じて表示する際、ウィジェ
ットはグラフィックをアプレットの子コンテキスト内で
描画し、かつ、“ダメージ”フラグを子コンテキスト内
にセットする。ブラウザが自身のメイン・ブラウザ・ル
ープを実施する際、ブラウザは各エレメントのダメージ
・フラグをチェックし、それを検出した場合、子バッフ
ァへの書込みがあったことと、親バッファを更新する必
要があることと判断する。
Description
【0001】
【発明の属する技術分野】本出願はユーザー・インター
フェース・コントロールのための方法及び装置に関す
る。より詳細には、本発明はユーザー・インターフェー
ス内のリアクティブ・コンポーネントの高速処理を可能
にする方法及び装置に関する。
フェース・コントロールのための方法及び装置に関す
る。より詳細には、本発明はユーザー・インターフェー
ス内のリアクティブ・コンポーネントの高速処理を可能
にする方法及び装置に関する。
【0002】
【発明の背景】多くの場合、特定の情報機器及び一般消
費者製品などの組込みプログラムを含むシステムは、汎
用ウィンドウイング・ソフトウェアを有さない。一般的
に、これらのシステムでは、全てのグラフィックスは線
描画ルーチン及び矩形描画ルーチンなどのビルトイン・
グラフィックス・ルーチンの呼び出しを通じて処理され
る。多くの従来のシステムでは、グラフィックスはブラ
ウザとのインタラクションを通じて描画される。従っ
て、複数のアプレットを複数の異なるスレッドとしてブ
ラウザ内で実行する場合、グラフィックス・オペレーシ
ョンを実施した際に、これらのアプレットは並行性の欠
如に直面する。
費者製品などの組込みプログラムを含むシステムは、汎
用ウィンドウイング・ソフトウェアを有さない。一般的
に、これらのシステムでは、全てのグラフィックスは線
描画ルーチン及び矩形描画ルーチンなどのビルトイン・
グラフィックス・ルーチンの呼び出しを通じて処理され
る。多くの従来のシステムでは、グラフィックスはブラ
ウザとのインタラクションを通じて描画される。従っ
て、複数のアプレットを複数の異なるスレッドとしてブ
ラウザ内で実行する場合、グラフィックス・オペレーシ
ョンを実施した際に、これらのアプレットは並行性の欠
如に直面する。
【0003】
【発明の概要】本発明の実施形態は各アプレット(また
はこれに類するブラウザ・エレメント)のための独立し
た子コンテキストをインプリメントする。ブラウザによ
って表示されたウェブ・ページのHTML内のエレメン
トに対応する1つ以上の子コンテキストを、本発明の実
施形態は提供する。例えば、ブラウザによって実行され
る各アプレットは対応する独立した子コンテキストを有
する。各子コンテキストは関連するメモリ・バッファを
有する。更に、各子コンテキストが指す親コンテキスト
を、ブラウザは有する。グラフィックをウィジェットを
通じて表示する際、ウィジェットはグラフィック(パネ
ルまたは押下されていないボタンなど)をアプレットの
子コンテキスト内で描画し、かつ、“ダメージ”フラグ
を子コンテキスト内にセットする。ブラウザが自身のメ
イン・ブラウザ・ループを実施する際、ブラウザは各エ
レメント(各アプレットを含む)のダメージ・フラグの
状態をチェックする。セットされたダメージ・フラグを
ブラウザが検出した場合、これは、子バッファへの書込
みがあったことと、親バッファを更新する必要があるこ
とを意味する。この場合、ブラウザは、この子バッファ
からの情報を親バッファ内へ“取り込む”。そして、こ
の親バッファはディスプレイ・スクリーンの更新に使用
される。従って、JVM内の幾つかの独立したスレッド
は並行して実行可能であり、かつ、互いに干渉し合うこ
となくグラフィックス・エレメントを更新し得る。
はこれに類するブラウザ・エレメント)のための独立し
た子コンテキストをインプリメントする。ブラウザによ
って表示されたウェブ・ページのHTML内のエレメン
トに対応する1つ以上の子コンテキストを、本発明の実
施形態は提供する。例えば、ブラウザによって実行され
る各アプレットは対応する独立した子コンテキストを有
する。各子コンテキストは関連するメモリ・バッファを
有する。更に、各子コンテキストが指す親コンテキスト
を、ブラウザは有する。グラフィックをウィジェットを
通じて表示する際、ウィジェットはグラフィック(パネ
ルまたは押下されていないボタンなど)をアプレットの
子コンテキスト内で描画し、かつ、“ダメージ”フラグ
を子コンテキスト内にセットする。ブラウザが自身のメ
イン・ブラウザ・ループを実施する際、ブラウザは各エ
レメント(各アプレットを含む)のダメージ・フラグの
状態をチェックする。セットされたダメージ・フラグを
ブラウザが検出した場合、これは、子バッファへの書込
みがあったことと、親バッファを更新する必要があるこ
とを意味する。この場合、ブラウザは、この子バッファ
からの情報を親バッファ内へ“取り込む”。そして、こ
の親バッファはディスプレイ・スクリーンの更新に使用
される。従って、JVM内の幾つかの独立したスレッド
は並行して実行可能であり、かつ、互いに干渉し合うこ
となくグラフィックス・エレメントを更新し得る。
【0004】子コンテキストのセットアップ、削除、読
取り及び変更を行い、かつ、情報を子コンテキストから
親コンテキストへコピーするためのルーチンを(少なく
とも)含むために、本発明はAGL(アプリケーション
ズ・グラフィックス・ライブラリ)ルーチンを拡張す
る。現在処理中のコンテキストを識別するパラメータを
(少なくとも)含むために、DWL(ディベロッパーズ
・ウィジェット・ライブラリ)ルーチンを拡張する。各
アプレットのコンテキストのダメージ・フラグをチェッ
クし、情報を子コンテキストのバッファから親コンテキ
ストのバッファ内へ取り込む機能性をインプリメントす
るために、ブラウザは拡張されている。
取り及び変更を行い、かつ、情報を子コンテキストから
親コンテキストへコピーするためのルーチンを(少なく
とも)含むために、本発明はAGL(アプリケーション
ズ・グラフィックス・ライブラリ)ルーチンを拡張す
る。現在処理中のコンテキストを識別するパラメータを
(少なくとも)含むために、DWL(ディベロッパーズ
・ウィジェット・ライブラリ)ルーチンを拡張する。各
アプレットのコンテキストのダメージ・フラグをチェッ
クし、情報を子コンテキストのバッファから親コンテキ
ストのバッファ内へ取り込む機能性をインプリメントす
るために、ブラウザは拡張されている。
【0005】リアクティブ・コンポーネントは固有の問
題を示す。リアクティブ・コンポーネントは、インタラ
クティブ・ビヘイビアを示す必要のあるコンポーネント
として定義される。例えば、ユーザーがディスプレイ・
スクリーン上のボタンをクリックした際、このボタンは
“押下された”状態に一瞬表示され、その後、即座に、
“解放された”状態に表示される。このようなインタラ
クティブ・ビヘイビアはビジュアル・フィードバックを
ユーザーへ提供する。リアクティブ・コンポーネントの
例としては、ボタン、リスト及び選択バーなどが挙げら
れ、これらは固有の問題を引き起こす。ボタンなどのウ
ィジェットがインタラクティブ・ビヘイビア(押下され
た際の上下の移動など)を示す必要がある際、このビヘ
イビアを迅速に形成する必要がある。そして、比較的頻
繁に実行されないメイン・ブラウザ・ループによって、
このビヘイビアを必ず拾い上げるには、このビヘイビア
の形成は速過ぎる。例えば、本実施形態では、メイン・
ブラウザ・ループは約200ミリ秒毎(即ち、毎秒5
回)に実行される。これとは対照的に、ボタンの“押し
下げ”およびそれに続くボタンの“上昇”は約50ミリ
秒で完了する。システムがブラウザ・ループを待つ場
合、ボタン押下を更に長い間継続する必要がある。
題を示す。リアクティブ・コンポーネントは、インタラ
クティブ・ビヘイビアを示す必要のあるコンポーネント
として定義される。例えば、ユーザーがディスプレイ・
スクリーン上のボタンをクリックした際、このボタンは
“押下された”状態に一瞬表示され、その後、即座に、
“解放された”状態に表示される。このようなインタラ
クティブ・ビヘイビアはビジュアル・フィードバックを
ユーザーへ提供する。リアクティブ・コンポーネントの
例としては、ボタン、リスト及び選択バーなどが挙げら
れ、これらは固有の問題を引き起こす。ボタンなどのウ
ィジェットがインタラクティブ・ビヘイビア(押下され
た際の上下の移動など)を示す必要がある際、このビヘ
イビアを迅速に形成する必要がある。そして、比較的頻
繁に実行されないメイン・ブラウザ・ループによって、
このビヘイビアを必ず拾い上げるには、このビヘイビア
の形成は速過ぎる。例えば、本実施形態では、メイン・
ブラウザ・ループは約200ミリ秒毎(即ち、毎秒5
回)に実行される。これとは対照的に、ボタンの“押し
下げ”およびそれに続くボタンの“上昇”は約50ミリ
秒で完了する。システムがブラウザ・ループを待つ場
合、ボタン押下を更に長い間継続する必要がある。
【0006】本明細書中に具体的に開示し、かつ、広範
に説明する本発明の目的に基づき、本発明は、リアクテ
ィブ・グラフィックス・エレメントを表示する方法であ
って、ブラウザによって、リアクティブ・グラフィック
ス・イベントをバーチャル実行環境へ送信する工程と、
ブラウザ内の親コンテキストと、ブラウザによって実行
されているカレント・アプレットとにそれぞれ対応する
子コンテキストを、バーチャル実行環境内に提供する工
程と、ディスプレイ・スクリーン上へ表示するリアクテ
ィブ・グラフィックス・イベントに基づき、バーチャル
実行環境によって、第1グラフィックを子コンテキスト
のバッファ及び親コンテキストのバッファ内へそれぞれ
書き込む工程と、所定の時間待機する工程と、ディスプ
レイ・スクリーン上へ表示するリアクティブ・グラフィ
ックス・イベントに基づき、バーチャル実行環境によっ
て、第2グラフィックを子コンテキストのバッファ及び
親コンテキストのバッファ内へそれぞれ書き込む工程
と、エクセキューション・コントロールをバーチャル実
行環境からブラウザへ戻す工程とを含む方法に関する。
に説明する本発明の目的に基づき、本発明は、リアクテ
ィブ・グラフィックス・エレメントを表示する方法であ
って、ブラウザによって、リアクティブ・グラフィック
ス・イベントをバーチャル実行環境へ送信する工程と、
ブラウザ内の親コンテキストと、ブラウザによって実行
されているカレント・アプレットとにそれぞれ対応する
子コンテキストを、バーチャル実行環境内に提供する工
程と、ディスプレイ・スクリーン上へ表示するリアクテ
ィブ・グラフィックス・イベントに基づき、バーチャル
実行環境によって、第1グラフィックを子コンテキスト
のバッファ及び親コンテキストのバッファ内へそれぞれ
書き込む工程と、所定の時間待機する工程と、ディスプ
レイ・スクリーン上へ表示するリアクティブ・グラフィ
ックス・イベントに基づき、バーチャル実行環境によっ
て、第2グラフィックを子コンテキストのバッファ及び
親コンテキストのバッファ内へそれぞれ書き込む工程
と、エクセキューション・コントロールをバーチャル実
行環境からブラウザへ戻す工程とを含む方法に関する。
【0007】添付図面に基づく以下の説明及び請求の範
囲を読むことによって、本発明を更に完全に理解でき
る。
囲を読むことによって、本発明を更に完全に理解でき
る。
【0008】
【発明の実施の形態】I.一般的な説明 多くの従来のワールド・ワイド・ウェブ・ブラウザは、
ジャバ・アプレットの実行が可能である。ジャバ・アプ
レットはジャバ・プログラミング言語で書かれたコンピ
ュータ・プログラムであり、ジャバ・プログラミング言
語はワールド・ワイド・ウェブ・ブラウザ内で実行する
ために設計されたプログラミング言語である。多くの場
合、ユーザーが表示されたウェブ・ページ内のボタン、
またはリンクをクリックした際、ジャバ・アプレットが
開始される。アプレットが開始された後、該アプレット
はブラウザ内で実行され、プログラムされたタスクを実
施する。“ジャバ(Java)”は米国及び他の国々におけ
るサン・マイクロシステムズ・インコーポレイテッドの
商標名である。
ジャバ・アプレットの実行が可能である。ジャバ・アプ
レットはジャバ・プログラミング言語で書かれたコンピ
ュータ・プログラムであり、ジャバ・プログラミング言
語はワールド・ワイド・ウェブ・ブラウザ内で実行する
ために設計されたプログラミング言語である。多くの場
合、ユーザーが表示されたウェブ・ページ内のボタン、
またはリンクをクリックした際、ジャバ・アプレットが
開始される。アプレットが開始された後、該アプレット
はブラウザ内で実行され、プログラムされたタスクを実
施する。“ジャバ(Java)”は米国及び他の国々におけ
るサン・マイクロシステムズ・インコーポレイテッドの
商標名である。
【0009】図1は本発明の1つの実施形態に基づくデ
ータ処理システム100のブロック図である。例えば、
データ処理システム100は、テレビジョン・セットま
たは他の適切なディスプレイ装置などのディスプレイ装
置130へ接続されたセット・トップ・ボックス101
であり得る。例えば、データ処理システム100は他の
任意の適切なデータ処理システムであってもよい。
ータ処理システム100のブロック図である。例えば、
データ処理システム100は、テレビジョン・セットま
たは他の適切なディスプレイ装置などのディスプレイ装
置130へ接続されたセット・トップ・ボックス101
であり得る。例えば、データ処理システム100は他の
任意の適切なデータ処理システムであってもよい。
【0010】システム100はプロセッサ102及びデ
ータ・ストレージ領域(例:メモリ)104を有する。
データ・ストレージ領域104は特定の周知の情報を含
む。この情報の例としては、オペレーティング・システ
ム112と、データ及びデータ・ストラクチャ114と
が挙げられる。例えば、本実施形態では、データ及びデ
ータ・ストラクチャ114はブラウザ106による表示
が可能なウェブ・ページを含む。更に例えば、データ及
びデータ・ストラクチャ114は、ジャバ仮想マシン
(JVM)108による実行が可能なアプレット・ソフ
トウェアを含み得る。更に、ストレージ領域104はL
AN、WAN、イントラネットまたはインターネットな
どのネットワーク・コネクション103と通信するため
のソフトウェア(図示略)を含むことが好ましい。
ータ・ストレージ領域(例:メモリ)104を有する。
データ・ストレージ領域104は特定の周知の情報を含
む。この情報の例としては、オペレーティング・システ
ム112と、データ及びデータ・ストラクチャ114と
が挙げられる。例えば、本実施形態では、データ及びデ
ータ・ストラクチャ114はブラウザ106による表示
が可能なウェブ・ページを含む。更に例えば、データ及
びデータ・ストラクチャ114は、ジャバ仮想マシン
(JVM)108による実行が可能なアプレット・ソフ
トウェアを含み得る。更に、ストレージ領域104はL
AN、WAN、イントラネットまたはインターネットな
どのネットワーク・コネクション103と通信するため
のソフトウェア(図示略)を含むことが好ましい。
【0011】システム100が入出力ラインなどの別の
エレメントと、キーボード、マウス及び音声入力装置な
どの別の入力装置、即ち、第2入力装置と、ディスプレ
イ・ターミナルなどのディスプレイ装置とを含み得るこ
とを、当業者は理解する。更に、フロッピー・ディス
ク、CD−ROM、メモリ・チップまたはDVDディス
クなどのコンピュータ読取り可能媒体に格納されたコン
ピュータ命令をそれぞれ読み取るフロッピー・ディスク
・ドライブ、CD−ROMリーダー、チップ・コネクタ
またはDVDリーダーなどのコンピュータ読取り可能入
力装置(図示略)を、システム100は含み得る。更
に、理解を容易にするために図示を省略したアプリケー
ション・プログラム、オペレーティング・システム及び
データなどを、システム100は含み得る。
エレメントと、キーボード、マウス及び音声入力装置な
どの別の入力装置、即ち、第2入力装置と、ディスプレ
イ・ターミナルなどのディスプレイ装置とを含み得るこ
とを、当業者は理解する。更に、フロッピー・ディス
ク、CD−ROM、メモリ・チップまたはDVDディス
クなどのコンピュータ読取り可能媒体に格納されたコン
ピュータ命令をそれぞれ読み取るフロッピー・ディスク
・ドライブ、CD−ROMリーダー、チップ・コネクタ
またはDVDリーダーなどのコンピュータ読取り可能入
力装置(図示略)を、システム100は含み得る。更
に、理解を容易にするために図示を省略したアプリケー
ション・プログラム、オペレーティング・システム及び
データなどを、システム100は含み得る。
【0012】以下の説明では、本明細書に開示する方法
及びフローチャートの各ステップをプロセッサ102
(または別の適切なプロセッサ)によって実施できるこ
とは言うまでもない。プロセッサ102は、ストレージ
領域104(または他の適切なメモリまたはストレージ
領域)に格納された命令を実行する。本発明は特定のイ
ンプリメンテーション技術またはプログラミング技術に
限定されないうえ、本明細書に開示する機能性を実現す
る任意の適切な技術を使用して、本発明を実施できるこ
とは言うまでもない。本発明は特定のプログラミング言
語またはオペレーティング・システムに限定されない。
及びフローチャートの各ステップをプロセッサ102
(または別の適切なプロセッサ)によって実施できるこ
とは言うまでもない。プロセッサ102は、ストレージ
領域104(または他の適切なメモリまたはストレージ
領域)に格納された命令を実行する。本発明は特定のイ
ンプリメンテーション技術またはプログラミング技術に
限定されないうえ、本明細書に開示する機能性を実現す
る任意の適切な技術を使用して、本発明を実施できるこ
とは言うまでもない。本発明は特定のプログラミング言
語またはオペレーティング・システムに限定されない。
【0013】ストレージ領域104内の命令は、コンピ
ュータ読取り可能媒体(図示略)からストレージ領域1
04内へ読み込み可能である。メイン・メモリに含まれ
る命令のシーケンスを実行することによって、プロセッ
サ102(または類似するプロセッサ)は本明細書に開
示する複数のプロセスを実施する。別の実施形態では、
本発明を実施するために、ハードワイヤード回路をソフ
トウェア命令に代えて、またはソフトウェア命令と一緒
に使用し得る。従って、本発明の実施形態はハードウェ
ア回路及びソフトウェアの特定の組み合わせに限定され
ない。
ュータ読取り可能媒体(図示略)からストレージ領域1
04内へ読み込み可能である。メイン・メモリに含まれ
る命令のシーケンスを実行することによって、プロセッ
サ102(または類似するプロセッサ)は本明細書に開
示する複数のプロセスを実施する。別の実施形態では、
本発明を実施するために、ハードワイヤード回路をソフ
トウェア命令に代えて、またはソフトウェア命令と一緒
に使用し得る。従って、本発明の実施形態はハードウェ
ア回路及びソフトウェアの特定の組み合わせに限定され
ない。
【0014】図1はシステム100上で実行する仮想マ
シン(ジャバ仮想マシンなど)108を示す。図2は図
1のシステム100によってサポートされ、かつ、本発
明の実施に適する仮想マシンのブロック図である。ジャ
バ・プログラミング言語で書かれたコンピュータ・プロ
グラムなどのコンピュータ・プログラムが実行される
と、コンパイルタイム環境155内において、ソース・
コード160がコンパイラ170へ提供される。コンパ
イラ170はソース・コード160をバイトコード18
0へ翻訳する。一般的に、ソフトウェア開発者がソース
・コード160を形成した時点において、ソース・コー
ド160はバイトコード180へ翻訳される。
シン(ジャバ仮想マシンなど)108を示す。図2は図
1のシステム100によってサポートされ、かつ、本発
明の実施に適する仮想マシンのブロック図である。ジャ
バ・プログラミング言語で書かれたコンピュータ・プロ
グラムなどのコンピュータ・プログラムが実行される
と、コンパイルタイム環境155内において、ソース・
コード160がコンパイラ170へ提供される。コンパ
イラ170はソース・コード160をバイトコード18
0へ翻訳する。一般的に、ソフトウェア開発者がソース
・コード160を形成した時点において、ソース・コー
ド160はバイトコード180へ翻訳される。
【0015】一般的に、バイトコード180はネットワ
ーク(例:図1のネットワーク103)を通じて複製、
ダウンロード若しくは配布されるか、または図1の一次
ストレージ104などのストレージ・デバイス上へ格納
され得る。本実施形態では、バイトコード180はプラ
ットフォームから独立している。即ち、適切な仮想マシ
ン上で実行されている実質的に全てのコンピュータ・シ
ステム上で、バイトコード180を実行し得る。
ーク(例:図1のネットワーク103)を通じて複製、
ダウンロード若しくは配布されるか、または図1の一次
ストレージ104などのストレージ・デバイス上へ格納
され得る。本実施形態では、バイトコード180はプラ
ットフォームから独立している。即ち、適切な仮想マシ
ン上で実行されている実質的に全てのコンピュータ・シ
ステム上で、バイトコード180を実行し得る。
【0016】バイトコード180は仮想マシン190を
含むランタイム環境108へ提供される。一般的に、ラ
ンタイム環境108は図1のプロセッサ102などのプ
ロセッサを使用して実行できる。仮想マシン109はコ
ンパイラ192、インタプリタ194及びランタイム・
システム196を含む。バイトコード180はコンパイ
ラ192またはインタプリタ194へ提供可能である。
含むランタイム環境108へ提供される。一般的に、ラ
ンタイム環境108は図1のプロセッサ102などのプ
ロセッサを使用して実行できる。仮想マシン109はコ
ンパイラ192、インタプリタ194及びランタイム・
システム196を含む。バイトコード180はコンパイ
ラ192またはインタプリタ194へ提供可能である。
【0017】バイトコード180をコンパイラ192へ
提供した際、バイトコード180に含まれるメソッドは
マシン命令へコンパイルされる。1つの実施形態では、
コンパイラ192はジャスト・イン・タイム・コンパイ
ラである。ジャスト・イン・タイム・コンパイラは、バ
イトコード180に含まれるメソッドのコンパイレーシ
ョンを該メソッドの実行直前まで遅らせる。バイトコー
ド180をインタプリタ194へ提供した際、バイトコ
ード180は1バイトコードずつインタプリタ194内
へ読み込まれる。そして、各バイトコードがインタプリ
タ194内へ読み込まれることにより、インタプリタ1
94は各バイトコードによって定められたオペレーショ
ンを実施する。即ち、当業者が理解するように、インタ
プリタ194はバイトコード180を“インタプリット
する”。
提供した際、バイトコード180に含まれるメソッドは
マシン命令へコンパイルされる。1つの実施形態では、
コンパイラ192はジャスト・イン・タイム・コンパイ
ラである。ジャスト・イン・タイム・コンパイラは、バ
イトコード180に含まれるメソッドのコンパイレーシ
ョンを該メソッドの実行直前まで遅らせる。バイトコー
ド180をインタプリタ194へ提供した際、バイトコ
ード180は1バイトコードずつインタプリタ194内
へ読み込まれる。そして、各バイトコードがインタプリ
タ194内へ読み込まれることにより、インタプリタ1
94は各バイトコードによって定められたオペレーショ
ンを実施する。即ち、当業者が理解するように、インタ
プリタ194はバイトコード180を“インタプリット
する”。
【0018】メソッドが別のメソッドによって呼び出さ
れた際、即ち、メソッドがランタイム環境108から呼
び出された際、この呼び出されたメソッドをインタプリ
トする場合、ランタイム・システム196は該メソッド
をバイトコード180のシーケンスの形態でランタイム
環境108から獲得し得る。このバイトコード180の
シーケンスはインタプリタ194によって直接実行でき
る。その一方、呼び出されたメソッドが過去にコンパイ
ルされていないコンパイルド・メソッドである場合、ラ
ンタイム・システム108は該メソッドをバイトコード
108のシーケンスの形態でランタイム環境108から
獲得する。そして、このバイトコード180のシーケン
スはコンパイラ192を起動し得る。次いで、コンパイ
ラ194はマシン命令をバイトコード180から形成
し、プロセッサ102(または他の適切なプロセッサ)
は形成されたマシン言語命令を直接実行し得る。一般的
に、仮想マシン109を終了する際、マシン言語命令は
廃棄される。仮想マシン、より詳細には、ジャバ仮想マ
シンのオペレーションはティム・リンドホルム及びフラ
ンク・イェリンによる“ジャバ仮想マシン仕様書(The
Java Virtual MachineSpecification)”(ISBN0-201-6
3452-X)と称される文献に更に詳細に開示されており、
この文献の内容はこの開示をもって本明細書中に開示し
たものとする。
れた際、即ち、メソッドがランタイム環境108から呼
び出された際、この呼び出されたメソッドをインタプリ
トする場合、ランタイム・システム196は該メソッド
をバイトコード180のシーケンスの形態でランタイム
環境108から獲得し得る。このバイトコード180の
シーケンスはインタプリタ194によって直接実行でき
る。その一方、呼び出されたメソッドが過去にコンパイ
ルされていないコンパイルド・メソッドである場合、ラ
ンタイム・システム108は該メソッドをバイトコード
108のシーケンスの形態でランタイム環境108から
獲得する。そして、このバイトコード180のシーケン
スはコンパイラ192を起動し得る。次いで、コンパイ
ラ194はマシン命令をバイトコード180から形成
し、プロセッサ102(または他の適切なプロセッサ)
は形成されたマシン言語命令を直接実行し得る。一般的
に、仮想マシン109を終了する際、マシン言語命令は
廃棄される。仮想マシン、より詳細には、ジャバ仮想マ
シンのオペレーションはティム・リンドホルム及びフラ
ンク・イェリンによる“ジャバ仮想マシン仕様書(The
Java Virtual MachineSpecification)”(ISBN0-201-6
3452-X)と称される文献に更に詳細に開示されており、
この文献の内容はこの開示をもって本明細書中に開示し
たものとする。
【0019】図3はテレビジョン130及びリモート・
ユニット120へ接続されたセット・トップ・ボックス
101を含むセット・トップ・ボックス・システムの例
を示す。入力装置として使用されるリモート・ユニット
120は正確な縮尺率で描かれていない。一般的に、実
際のリモート・ユニットはユーザーの手に収まることに
適したサイズである。同様に、セット・トップ・ボック
ス101及びテレビジョン120は必ずしも正確な縮尺
率で描かれていない。本発明の特定の実施形態はキーボ
ード、赤外線キーボードまたは他のワイヤレス・キーボ
ード(図示略)と併用できる。
ユニット120へ接続されたセット・トップ・ボックス
101を含むセット・トップ・ボックス・システムの例
を示す。入力装置として使用されるリモート・ユニット
120は正確な縮尺率で描かれていない。一般的に、実
際のリモート・ユニットはユーザーの手に収まることに
適したサイズである。同様に、セット・トップ・ボック
ス101及びテレビジョン120は必ずしも正確な縮尺
率で描かれていない。本発明の特定の実施形態はキーボ
ード、赤外線キーボードまたは他のワイヤレス・キーボ
ード(図示略)と併用できる。
【0020】リモート・ユニット120上に示すボタン
配置は例示を目的とするだけであり、限定的な意味で解
釈してはならないことは言うまでもない。リモート・ユ
ニット120は“ウェブ”ボタン、“メール”ボタン、
“ホーム”ボタン、“goto(移動)”ボタン、“お気に
入り”ボタン、“バック”ボタン、“ctl”ボタン、矢
印ボタン及び“セレクト”ボタンを含む。直前に表示さ
れたウェブ・ページを表示することが、バック・ボタン
の従来の用途である。同様に、ユーザーが新しいウェブ
・ページを指定し、かつ、見ることを可能にすること
が、“goto”ボタンの従来の用途である。当業者に知ら
れているように、ユーザーがカーソルをウェブ・ページ
304に表示された複数のエレメント間で移動させるこ
とを、矢印ボタンは可能にする。
配置は例示を目的とするだけであり、限定的な意味で解
釈してはならないことは言うまでもない。リモート・ユ
ニット120は“ウェブ”ボタン、“メール”ボタン、
“ホーム”ボタン、“goto(移動)”ボタン、“お気に
入り”ボタン、“バック”ボタン、“ctl”ボタン、矢
印ボタン及び“セレクト”ボタンを含む。直前に表示さ
れたウェブ・ページを表示することが、バック・ボタン
の従来の用途である。同様に、ユーザーが新しいウェブ
・ページを指定し、かつ、見ることを可能にすること
が、“goto”ボタンの従来の用途である。当業者に知ら
れているように、ユーザーがカーソルをウェブ・ページ
304に表示された複数のエレメント間で移動させるこ
とを、矢印ボタンは可能にする。
【0021】図3において、ボタン204、リスト及び
パネルはディスプレイ装置130に映し出されたウェブ
・ページ上に表示されている。図1のアプレット110
などのアプレット(図示略)のコントロールの下に、こ
れらのエレメント304がウェブ・ページ上で形成され
ることは言うまでもない。
パネルはディスプレイ装置130に映し出されたウェブ
・ページ上に表示されている。図1のアプレット110
などのアプレット(図示略)のコントロールの下に、こ
れらのエレメント304がウェブ・ページ上で形成され
ることは言うまでもない。
【0022】セット・トップ・ボックスがインターネッ
ト、イントラネット、LANまたはWANなどのネット
ワークと通信することを、ネットワーク・コネクション
103は可能にする。更に、ネットワーク・コネクショ
ンはワイヤレス・リンクであってもよい。
ト、イントラネット、LANまたはWANなどのネット
ワークと通信することを、ネットワーク・コネクション
103は可能にする。更に、ネットワーク・コネクショ
ンはワイヤレス・リンクであってもよい。
【0023】ビデオ・ライン207はビデオ入力のソー
スをセット・トップ・ボックス101へ提供する。ビデ
オ出力信号及びオーディオ出力信号をディスプレイ装置
130へ供給するために、ライン206はセット・トッ
プ・ボックス101をディスプレイ装置130へ接続す
る。例えば、ライン206上の信号はSビデオ信号、コ
ンポジット信号、コンポーネント信号、オーディオ信号
及びHDTV信号のうちの1つ以上であり得る。
スをセット・トップ・ボックス101へ提供する。ビデ
オ出力信号及びオーディオ出力信号をディスプレイ装置
130へ供給するために、ライン206はセット・トッ
プ・ボックス101をディスプレイ装置130へ接続す
る。例えば、ライン206上の信号はSビデオ信号、コ
ンポジット信号、コンポーネント信号、オーディオ信号
及びHDTV信号のうちの1つ以上であり得る。
【0024】II.詳細な説明 図4は本発明の実施形態に基づく親コンテキスト・デー
タ・ストラクチャ及び子コンテキスト・データ・ストラ
クチャのブロック図である。図4において、ブラウザ・
ページ・メモリ312は第1アプレット領域(第1アプ
レット領域はリスト、ボタン及びパネルを含む)及び第
2アプレット領域(第2アプレット領域のコンテントは
図示略)のためのメモリを含む。ブラウザの親コンテキ
スト・データ・ストラクチャ314へのポインタをブラ
ウザ・メモリは有する。親コンテキスト・データ・スト
ラクチャ314はブラウザに関する情報を含む。この情
報の例としては、フォントと、フォアグラウンド及びバ
ックグラウンドの色情報と、ブラウザのスクリーン座標
とが挙げられる。親コンテキスト314は関連する親メ
モリ・バッファ318を有する。親メモリ・バッファ3
18はブラウザのスクリーン・メモリの可視表現を含
む。
タ・ストラクチャ及び子コンテキスト・データ・ストラ
クチャのブロック図である。図4において、ブラウザ・
ページ・メモリ312は第1アプレット領域(第1アプ
レット領域はリスト、ボタン及びパネルを含む)及び第
2アプレット領域(第2アプレット領域のコンテントは
図示略)のためのメモリを含む。ブラウザの親コンテキ
スト・データ・ストラクチャ314へのポインタをブラ
ウザ・メモリは有する。親コンテキスト・データ・スト
ラクチャ314はブラウザに関する情報を含む。この情
報の例としては、フォントと、フォアグラウンド及びバ
ックグラウンドの色情報と、ブラウザのスクリーン座標
とが挙げられる。親コンテキスト314は関連する親メ
モリ・バッファ318を有する。親メモリ・バッファ3
18はブラウザのスクリーン・メモリの可視表現を含
む。
【0025】ブラウザによって現在表示されているペー
ジのHTML内の各エレメントは、関連するブラウザ・
エレメント316を有する。従って、この例では、第1
アプレット及び第2アプレットは関連するブラウザ・エ
レメント316をそれぞれ有する。関連するブラウザ・
エレメントを有し得る別の種類のエレメントとしては、
GIF及びJPEGなどが挙げられる。
ジのHTML内の各エレメントは、関連するブラウザ・
エレメント316を有する。従って、この例では、第1
アプレット及び第2アプレットは関連するブラウザ・エ
レメント316をそれぞれ有する。関連するブラウザ・
エレメントを有し得る別の種類のエレメントとしては、
GIF及びJPEGなどが挙げられる。
【0026】各ブラウザ・エレメントはJVM内の子コ
ンテキスト302を指す。理解を容易にするために、1
つの子コンテキスト302のみを図示する。しかし、本
実施形態では、各ブラウザ・エレメント(及び各アプレ
ット)は関連する子コンテキストを有する。子コンテキ
スト302は自身に関連するアプレットに関する情報を
含む。この情報の例としては、フォントと、フォアグラ
ウンド及びバックグラウンドの色情報と、アプレットに
よって表示された情報のスクリーン座標とが挙げられ
る。更に、アプレットの子コンテキストは、子バッファ
のコンテントが変更されたか否かを示すダメージ・フラ
グ350(“ダーティ・ビット”に類似する)と、アプ
レットがボタン、リストまたはチョイスなどのリアクテ
ィブ・エレメントを含むか否かを示す再帰的更新フラグ
352とを含む。ブラウザのスクリーン・メモリの可視
表現を含む関連する子メモリ・バッファ304を、子コ
ンテキスト314は有する。
ンテキスト302を指す。理解を容易にするために、1
つの子コンテキスト302のみを図示する。しかし、本
実施形態では、各ブラウザ・エレメント(及び各アプレ
ット)は関連する子コンテキストを有する。子コンテキ
スト302は自身に関連するアプレットに関する情報を
含む。この情報の例としては、フォントと、フォアグラ
ウンド及びバックグラウンドの色情報と、アプレットに
よって表示された情報のスクリーン座標とが挙げられ
る。更に、アプレットの子コンテキストは、子バッファ
のコンテントが変更されたか否かを示すダメージ・フラ
グ350(“ダーティ・ビット”に類似する)と、アプ
レットがボタン、リストまたはチョイスなどのリアクテ
ィブ・エレメントを含むか否かを示す再帰的更新フラグ
352とを含む。ブラウザのスクリーン・メモリの可視
表現を含む関連する子メモリ・バッファ304を、子コ
ンテキスト314は有する。
【0027】本実施形態はXサーバー(X Server)また
はモチーフ(Motif)などのグラフィックス・システム
を使用しない。その代わり、本実施形態は子コンテキス
ト及び親コンテキストと一緒にインプリメントされたダ
イレクト・グラフィック・ルーチンを使用する。これら
のダイレクト・グラフィックス・ルーチンは、親コンテ
キスト及び/または子コンテキストのグラフィックス・
バッファ内へ直接書き込みを行う。グラフィックス・ジ
ャバ・オブジェクト310は、抽象クラスであるグラフ
ィックス・ピア・オブジェクト308を指す。DWLオ
ブジェクトは、クラス308のサブクラスである。DW
Lグラフィックス・オブジェクトの例としては、ボタン
・ウィジェットが挙げられる。DWLグラフィックス・
オブジェクトは、該オブジェクトを含むアプレットの子
コンテキスト302を指す。
はモチーフ(Motif)などのグラフィックス・システム
を使用しない。その代わり、本実施形態は子コンテキス
ト及び親コンテキストと一緒にインプリメントされたダ
イレクト・グラフィック・ルーチンを使用する。これら
のダイレクト・グラフィックス・ルーチンは、親コンテ
キスト及び/または子コンテキストのグラフィックス・
バッファ内へ直接書き込みを行う。グラフィックス・ジ
ャバ・オブジェクト310は、抽象クラスであるグラフ
ィックス・ピア・オブジェクト308を指す。DWLオ
ブジェクトは、クラス308のサブクラスである。DW
Lグラフィックス・オブジェクトの例としては、ボタン
・ウィジェットが挙げられる。DWLグラフィックス・
オブジェクトは、該オブジェクトを含むアプレットの子
コンテキスト302を指す。
【0028】各ジャバ・アプレットが1つ以上の独立し
たスレッドとしてJVM内で実行される点に注意するこ
とが重要である。従って、各ジャバ・アプレットは自身
の子コンテキスト302及び自身の子メモリを他のアプ
レットから独立して変更できる。図8に示すように、実
行中のアプレットのダメージ・フラグがセットされたか
否かを決定するために、メイン・ブラウザ・ループは該
アプレットに対するポーリングを周期的に実施する。
たスレッドとしてJVM内で実行される点に注意するこ
とが重要である。従って、各ジャバ・アプレットは自身
の子コンテキスト302及び自身の子メモリを他のアプ
レットから独立して変更できる。図8に示すように、実
行中のアプレットのダメージ・フラグがセットされたか
否かを決定するために、メイン・ブラウザ・ループは該
アプレットに対するポーリングを周期的に実施する。
【0029】図5はブラウザと、ブラウザ・エレメント
の例と、特定のブラウザ・エレメントのコンポーネント
の例との間の関係を示す図である。ブラウザはアプレッ
ト、GIF、JPEG及びフレームなどのHTMLエレ
メントを表示する。アプレットなどの特定のエレメント
は、ボタン、リスト、チョイスまたはパネルなどのグラ
フィックス・コンポーネントを含み得る。図示するよう
に、ボタン、リスト及びチョイスなどの特定のエレメン
トは、ユーザーによって押下または選択された際に、イ
ンタラクティブ・アウトプットを必要とするリアクティ
ブ・コンポーネントの例である。これとは対照的に、一
般的に、パネルはユーザーが該パネルを使用したことを
告げる外部表示を必要としない。
の例と、特定のブラウザ・エレメントのコンポーネント
の例との間の関係を示す図である。ブラウザはアプレッ
ト、GIF、JPEG及びフレームなどのHTMLエレ
メントを表示する。アプレットなどの特定のエレメント
は、ボタン、リスト、チョイスまたはパネルなどのグラ
フィックス・コンポーネントを含み得る。図示するよう
に、ボタン、リスト及びチョイスなどの特定のエレメン
トは、ユーザーによって押下または選択された際に、イ
ンタラクティブ・アウトプットを必要とするリアクティ
ブ・コンポーネントの例である。これとは対照的に、一
般的に、パネルはユーザーが該パネルを使用したことを
告げる外部表示を必要としない。
【0030】図6は本発明の実施形態に基づく孤立デー
タ・ストラクチャのブロック図である。“ビハインド・
ザ・シーンズ(behind the scenes)”ドローイングの
実施を要する状態において、孤立コンテキスト(orphan
context)は使用される。孤立コンテキストは子コンテ
キストに類似している(そして、孤立コンテキストは子
コンテキストの特別なケースであり得る)。しかし、孤
立コンテキストは特定のアプレットまたは他のエレメン
トに関連していない。代わりに、図16に示すように、
孤立コンテキストのコンテントは子バッファへ移され、
子バッファのダメージ・フラグがセットされる。この結
果、メイン・ブラウザ・ループはグラフィックスの変化
を最終的にピックアップする。孤立コンテキストはスク
リーン上に直接描画できない。孤立コンテキストは別の
コンテキスト(子コンテキストなど)へコピーし得るの
みである。
タ・ストラクチャのブロック図である。“ビハインド・
ザ・シーンズ(behind the scenes)”ドローイングの
実施を要する状態において、孤立コンテキスト(orphan
context)は使用される。孤立コンテキストは子コンテ
キストに類似している(そして、孤立コンテキストは子
コンテキストの特別なケースであり得る)。しかし、孤
立コンテキストは特定のアプレットまたは他のエレメン
トに関連していない。代わりに、図16に示すように、
孤立コンテキストのコンテントは子バッファへ移され、
子バッファのダメージ・フラグがセットされる。この結
果、メイン・ブラウザ・ループはグラフィックスの変化
を最終的にピックアップする。孤立コンテキストはスク
リーン上に直接描画できない。孤立コンテキストは別の
コンテキスト(子コンテキストなど)へコピーし得るの
みである。
【0031】図7はメイン・ブラウザ・ループ及びJV
Mループを示すブロック図である。図示するように、こ
れらのループはメイン・ブラウザ・ループ(メイン・ブ
ラウザ・ループは図1のブラウザ106によって実施さ
れる)を含む。メインJVMループ504はJVM10
8によって実施される。キー・イベント・キュー510
は、キー押下などの“キー・イベント”をリモート・ユ
ニット206から受信し、かつ、これらの“キー・イベ
ント”をメイン・ブラウザ・ループ502への入力のキ
ューへ加える。JVMキュー508は“JVMイベン
ト”をメイン・ブラウザ・ループから受信し、かつ、こ
れらの“JVMイベント”をメインJVMループ504
への入力のキューへ加える。本実施形態では、各ループ
502,506は、プロセッサ102によって実行され
るスレッドとしてインプリメントされている。
Mループを示すブロック図である。図示するように、こ
れらのループはメイン・ブラウザ・ループ(メイン・ブ
ラウザ・ループは図1のブラウザ106によって実施さ
れる)を含む。メインJVMループ504はJVM10
8によって実施される。キー・イベント・キュー510
は、キー押下などの“キー・イベント”をリモート・ユ
ニット206から受信し、かつ、これらの“キー・イベ
ント”をメイン・ブラウザ・ループ502への入力のキ
ューへ加える。JVMキュー508は“JVMイベン
ト”をメイン・ブラウザ・ループから受信し、かつ、こ
れらの“JVMイベント”をメインJVMループ504
への入力のキューへ加える。本実施形態では、各ループ
502,506は、プロセッサ102によって実行され
るスレッドとしてインプリメントされている。
【0032】図8はメイン・ブラウザ・ループの詳細を
示すフローチャートであり、該メイン・ブラウザ・ルー
プは実行中のアプレットを周期的にリフレッシュするプ
ロセスを含む。ステップ602では、メイン・ループは
キー押下をキー・イベント・キューから受け取る。キー
押下はユーザーによるリモート120上のキーの押下の
結果であるか、またはアプレットによってスクリーン上
に表示されたボタン若しくはこれに類するコンポーネン
トのクリック若しくは選択の結果であり得る。ステップ
602において、カレント・キー・イベントがアプレッ
トに関するイベントである場合、イベントはJVMキュ
ー508へ加えられる。カレント・キー・イベントがア
プレットに関するイベントでない場合、このキー・イベ
ントに対する適切なアクティビティを実施する。図9に
示すように、これら両方のケースにおいて、メイン・ブ
ラウザ・ループは全ての実行中のアプレットのグラフィ
ックス表示をリフレッシュする。(別のアクティビティ
がメイン・ブラウザ・ループ内で発生するが、理解を容
易にするために、これら別のアクティビティが削除され
ていることは言うまでもない。)
示すフローチャートであり、該メイン・ブラウザ・ルー
プは実行中のアプレットを周期的にリフレッシュするプ
ロセスを含む。ステップ602では、メイン・ループは
キー押下をキー・イベント・キューから受け取る。キー
押下はユーザーによるリモート120上のキーの押下の
結果であるか、またはアプレットによってスクリーン上
に表示されたボタン若しくはこれに類するコンポーネン
トのクリック若しくは選択の結果であり得る。ステップ
602において、カレント・キー・イベントがアプレッ
トに関するイベントである場合、イベントはJVMキュ
ー508へ加えられる。カレント・キー・イベントがア
プレットに関するイベントでない場合、このキー・イベ
ントに対する適切なアクティビティを実施する。図9に
示すように、これら両方のケースにおいて、メイン・ブ
ラウザ・ループは全ての実行中のアプレットのグラフィ
ックス表示をリフレッシュする。(別のアクティビティ
がメイン・ブラウザ・ループ内で発生するが、理解を容
易にするために、これら別のアクティビティが削除され
ていることは言うまでもない。)
【0033】図9はメイン・ブラウザ・ループ内のアプ
レットをリフレッシュするプロセスの詳細を示すフロー
チャートである。最初のステップ702では、コントロ
ールは親コンテキストのロックが解除されるまで待機す
る。ある状態において、親コンテキストのロックが解除
される。他のスレッドが親コンテキストへアクセスする
必要がある際、または親コンテキストをアクセス状態に
維持することを望む際、親コンテキストがロックされ
る。本実施形態では、このロックはユニックス相互排除
ロックとしてインプリメントされる。図12のステップ
1002は、親をロックする方法の1つの例を示す。
レットをリフレッシュするプロセスの詳細を示すフロー
チャートである。最初のステップ702では、コントロ
ールは親コンテキストのロックが解除されるまで待機す
る。ある状態において、親コンテキストのロックが解除
される。他のスレッドが親コンテキストへアクセスする
必要がある際、または親コンテキストをアクセス状態に
維持することを望む際、親コンテキストがロックされ
る。本実施形態では、このロックはユニックス相互排除
ロックとしてインプリメントされる。図12のステップ
1002は、親をロックする方法の1つの例を示す。
【0034】ダメージ・フラグがセットされているか否
かを決定するために、図9に示す複数のステップはアク
ティブ・アプレットを通じてループを形成する。ステッ
プ704では、カレント・アプレットのダメージ・フラ
グがセットされている場合、コントロールはステップ7
06へ移動する。カレント・アプレットのダメージ・フ
ラグがセットされていない場合、コントロールはステッ
プ712へ移動する。ステップ706では、ブラウザは
親コンテキスト及び子コンテキストをロックする(この
結果、他のスレッドはこれらをステップ708〜710
の間に変更できなくなる)。ステップ708では、ブラ
ウザはグラフィックス・データをアプレットの子コンテ
キスト302及び子メモリ304からブラウザの親コン
テキスト314及び親メモリ318へ“取り込む”。本
実施形態では、このステップは図17に関連して詳述す
るaglPutContextと呼ばれるルーチンの呼び出しを通じ
て実施される。
かを決定するために、図9に示す複数のステップはアク
ティブ・アプレットを通じてループを形成する。ステッ
プ704では、カレント・アプレットのダメージ・フラ
グがセットされている場合、コントロールはステップ7
06へ移動する。カレント・アプレットのダメージ・フ
ラグがセットされていない場合、コントロールはステッ
プ712へ移動する。ステップ706では、ブラウザは
親コンテキスト及び子コンテキストをロックする(この
結果、他のスレッドはこれらをステップ708〜710
の間に変更できなくなる)。ステップ708では、ブラ
ウザはグラフィックス・データをアプレットの子コンテ
キスト302及び子メモリ304からブラウザの親コン
テキスト314及び親メモリ318へ“取り込む”。本
実施形態では、このステップは図17に関連して詳述す
るaglPutContextと呼ばれるルーチンの呼び出しを通じ
て実施される。
【0035】図10はパネルなどの通常の非リアクティ
ブ・コンポーネントと、インタラクティブ・ビヘイビア
を必要としない他のディスプレイ・エレメントとのうち
のいずれか一方のためのメインJVMループを示すフロ
ーチャートである。本実施形態では、図10に示す複数
のステップはJVM108によって実施される。ステッ
プ802では、JVMはイベントをJVMイベント・キ
ューから受信する。このキューに含まれるイベントはブ
ラウザまたは別のソースから送信可能である。この非リ
アクティブ・イベントの1つの例は“パネル描画”であ
り得る。ステップ804〜812は、フォーカスを有す
るジャバAWTウィジェット(即ち、入力をリモート1
20またはこれに類するキーボードから受信するために
選択されているジャバAWTウィジェット)を突き止め
る。イベントは、ピアのアブストラクト・イベント・ハ
ンドラ・コード及び実際のコンポーネント・コードを呼
び出すジャバ・ウィジェットへ送られる。ステップ81
2はピアに対応するDWLコンポーネント・ウィジェッ
トを突き止める。そして、ステップ814では、イベン
トはDWL(ディベロッパーズ・ウィジェット・ライブ
ラリ)コンポーネントへ送られる(図17参照)。ステ
ップ816では、イベントに基づいて、DWLコンポー
ネントはグラフィックを子バッファ内で描画する。リア
クティブ・コンポーネント及び非リアクティブ・コンポ
ーネントの両方に使用するメソッドを開示する図12に
おいて、このステップを詳述する。
ブ・コンポーネントと、インタラクティブ・ビヘイビア
を必要としない他のディスプレイ・エレメントとのうち
のいずれか一方のためのメインJVMループを示すフロ
ーチャートである。本実施形態では、図10に示す複数
のステップはJVM108によって実施される。ステッ
プ802では、JVMはイベントをJVMイベント・キ
ューから受信する。このキューに含まれるイベントはブ
ラウザまたは別のソースから送信可能である。この非リ
アクティブ・イベントの1つの例は“パネル描画”であ
り得る。ステップ804〜812は、フォーカスを有す
るジャバAWTウィジェット(即ち、入力をリモート1
20またはこれに類するキーボードから受信するために
選択されているジャバAWTウィジェット)を突き止め
る。イベントは、ピアのアブストラクト・イベント・ハ
ンドラ・コード及び実際のコンポーネント・コードを呼
び出すジャバ・ウィジェットへ送られる。ステップ81
2はピアに対応するDWLコンポーネント・ウィジェッ
トを突き止める。そして、ステップ814では、イベン
トはDWL(ディベロッパーズ・ウィジェット・ライブ
ラリ)コンポーネントへ送られる(図17参照)。ステ
ップ816では、イベントに基づいて、DWLコンポー
ネントはグラフィックを子バッファ内で描画する。リア
クティブ・コンポーネント及び非リアクティブ・コンポ
ーネントの両方に使用するメソッドを開示する図12に
おいて、このステップを詳述する。
【0036】図11はボタン押下などのリアクティブ・
コンポーネントのためのメインJVMループを示すフロ
ーチャートである。前記のように、リアクティブ・コン
ポーネントはメイン・ブラウザ・ループを待つことがで
きない。本実施形態では、図9のメイン・ブラウザ・ル
ープは200ミリ秒毎に実行される。同様に、前記のボ
タン押下などのリアクティブ・イベントは、約50ミリ
秒後に起こる必要がある。図11のステップ918にお
いて、JVMが子コンテキスト及び親コンテキストへの
直接書込みを2回行う点を除けば、図11に示す複数の
ステップは図10に示す複数のステップに類似してい
る。従って、メイン・ブラウザ・ループを待つことな
く、JVMは“押下された”ボタンのグラフィック及び
“解放された”ボタンのグラフィックを直接書き込む。
ステップ918は再帰的更新フラグをセットし、2つの
グラフィックス・イメージを子バッファ及び親バッファ
内へ描画し、さらには再帰的更新フラグをクリアする。
これは図12に関連して以下に詳述する。
コンポーネントのためのメインJVMループを示すフロ
ーチャートである。前記のように、リアクティブ・コン
ポーネントはメイン・ブラウザ・ループを待つことがで
きない。本実施形態では、図9のメイン・ブラウザ・ル
ープは200ミリ秒毎に実行される。同様に、前記のボ
タン押下などのリアクティブ・イベントは、約50ミリ
秒後に起こる必要がある。図11のステップ918にお
いて、JVMが子コンテキスト及び親コンテキストへの
直接書込みを2回行う点を除けば、図11に示す複数の
ステップは図10に示す複数のステップに類似してい
る。従って、メイン・ブラウザ・ループを待つことな
く、JVMは“押下された”ボタンのグラフィック及び
“解放された”ボタンのグラフィックを直接書き込む。
ステップ918は再帰的更新フラグをセットし、2つの
グラフィックス・イメージを子バッファ及び親バッファ
内へ描画し、さらには再帰的更新フラグをクリアする。
これは図12に関連して以下に詳述する。
【0037】図12は図10及び図11の詳細を示す。
図12のメソッドが図10(非リアクティブ・コンポー
ネント)から呼び出された場合、再帰的更新フラグはセ
ットされない。その一方、図12のメソッドが図11
(リアクティブ・コンポーネント)から呼び出された場
合、再帰的更新フラグはステップ918においてセット
される。
図12のメソッドが図10(非リアクティブ・コンポー
ネント)から呼び出された場合、再帰的更新フラグはセ
ットされない。その一方、図12のメソッドが図11
(リアクティブ・コンポーネント)から呼び出された場
合、再帰的更新フラグはステップ918においてセット
される。
【0038】従って、非リアクティブ・コンポーネント
の場合、ステップ1002では、ダメージ・フラグを子
コンテキスト内にセットするaglBeginPaintコール(図
17参照)を、ウィジェットは発行する。再帰的更新フ
ラグがセットされていないので、コントロールはステッ
プ1004へ移動する。ステップ1004では、DWL
コンポーネント・オブジェクトは、受信したJVMイベ
ントのグラフィックスを子バッファ内で描画する。再帰
的更新フラグがセットされていないので、コントロール
はステップ1006へ移動し、次いで、ステップ100
8へ移動する。従って、非リアクティブ・コンポーネン
トの場合、コンポーネント・オブジェクトは正しいグラ
フィックを子バッファ内で描画し、かつ、ダメージ・フ
ラグを子コンテキスト内にセットする。図9に示すよう
に、グラフィックスの変化はメイン・ブラウザ・ループ
内でピックアップされる。
の場合、ステップ1002では、ダメージ・フラグを子
コンテキスト内にセットするaglBeginPaintコール(図
17参照)を、ウィジェットは発行する。再帰的更新フ
ラグがセットされていないので、コントロールはステッ
プ1004へ移動する。ステップ1004では、DWL
コンポーネント・オブジェクトは、受信したJVMイベ
ントのグラフィックスを子バッファ内で描画する。再帰
的更新フラグがセットされていないので、コントロール
はステップ1006へ移動し、次いで、ステップ100
8へ移動する。従って、非リアクティブ・コンポーネン
トの場合、コンポーネント・オブジェクトは正しいグラ
フィックを子バッファ内で描画し、かつ、ダメージ・フ
ラグを子コンテキスト内にセットする。図9に示すよう
に、グラフィックスの変化はメイン・ブラウザ・ループ
内でピックアップされる。
【0039】リアクティブ・コンポーネントの場合、ス
テップ1002では、ダメージ・フラグを子コンテキス
ト内にセットするaglBeginPaintコール(図17参照)
を、ウィジェットは発行する(これは必要ではないが、
害はない)。再帰的更新フラグがセットされているの
で、親コンテキスト及び親バッファと、子コンテキスト
及び子バッファとがロックされる。このロックが解除さ
れるまで、ロッキング・スレッドのみがこれらのコンテ
キストを変更し得ることを、このロックは意味してい
る。コントロールはステップ1004へ移動する。ステ
ップ1004では、DWLコンポーネント・オブジェク
トは受信したJVMイベントの第1グラフィック(図1
4に示す“押下された”ボタンなど)を子バッファ内で
描画する。再帰的更新フラグがセットされているので、
DWLコンポーネント・オブジェクトは受信したJVM
イベントのグラフィックスを親バッファ内でも描画す
る。従って、親バッファへ加えられた変更はメイン・ブ
ラウザ・ループを待つことなくディスプレイ・スクリー
ン上へ自動的に反映される。コントロールはステップ1
006へ移動し、次いで、ステップ1009へ移動す
る。そして、ステップ1009はロックをクリアする。
ステップ1010は適切な時間(50ミリ秒など)の経
過を待つ。この時間は、人がボタンの外観が変化したこ
とに気付くのに十分な長さである。
テップ1002では、ダメージ・フラグを子コンテキス
ト内にセットするaglBeginPaintコール(図17参照)
を、ウィジェットは発行する(これは必要ではないが、
害はない)。再帰的更新フラグがセットされているの
で、親コンテキスト及び親バッファと、子コンテキスト
及び子バッファとがロックされる。このロックが解除さ
れるまで、ロッキング・スレッドのみがこれらのコンテ
キストを変更し得ることを、このロックは意味してい
る。コントロールはステップ1004へ移動する。ステ
ップ1004では、DWLコンポーネント・オブジェク
トは受信したJVMイベントの第1グラフィック(図1
4に示す“押下された”ボタンなど)を子バッファ内で
描画する。再帰的更新フラグがセットされているので、
DWLコンポーネント・オブジェクトは受信したJVM
イベントのグラフィックスを親バッファ内でも描画す
る。従って、親バッファへ加えられた変更はメイン・ブ
ラウザ・ループを待つことなくディスプレイ・スクリー
ン上へ自動的に反映される。コントロールはステップ1
006へ移動し、次いで、ステップ1009へ移動す
る。そして、ステップ1009はロックをクリアする。
ステップ1010は適切な時間(50ミリ秒など)の経
過を待つ。この時間は、人がボタンの外観が変化したこ
とに気付くのに十分な長さである。
【0040】第2グラフィック(図15に示す“解放さ
れた”ボタンなど)を親と子のバッファ及びコンテキス
ト内で直接描画するために、ステップ1012〜101
6は前記の複数のステップに類似する複数のステップを
実施する。従って、リアクティブ・コンポーネントの場
合、コンポーネント・オブジェクトは第1グラフィック
を子バッファ及び親バッファ内で描画し、所定の時間待
機し、そして、第2グラフィックスを親バッファ及び子
バッファ内でそれぞれ描画する。図9に示すメイン・ブ
ラウザ・ループ内でピックアップされるグラフィックス
の変化を、リアクティブ・グラフィックスは待たない。
メイン・ブラウザ・ループが第2グラフィックを時折偶
然に再描画する場合、この再描画は害を生じない。
れた”ボタンなど)を親と子のバッファ及びコンテキス
ト内で直接描画するために、ステップ1012〜101
6は前記の複数のステップに類似する複数のステップを
実施する。従って、リアクティブ・コンポーネントの場
合、コンポーネント・オブジェクトは第1グラフィック
を子バッファ及び親バッファ内で描画し、所定の時間待
機し、そして、第2グラフィックスを親バッファ及び子
バッファ内でそれぞれ描画する。図9に示すメイン・ブ
ラウザ・ループ内でピックアップされるグラフィックス
の変化を、リアクティブ・グラフィックスは待たない。
メイン・ブラウザ・ループが第2グラフィックを時折偶
然に再描画する場合、この再描画は害を生じない。
【0041】図13は本発明の1つの実施形態のアーキ
テクチャを示す図である。このアーキテクチャは前記の
拡張されたaglルーチン及び拡張されたDWLルーチン
を含む。
テクチャを示す図である。このアーキテクチャは前記の
拡張されたaglルーチン及び拡張されたDWLルーチン
を含む。
【0042】図16は孤立コンテキストのフローチャー
トである。図16に示す複数のステップは図10に示す
複数のステップに類似している。しかし、ステップ13
16では、孤立コンテキストを子コンテキスト(または
親コンテキスト、図示略)へコピーする必要があり、孤
立コンテキストは、この子コンテキスト(または親コン
テキスト)において最終的に表示される。JPEG及び
GIFなどで時々形成されるグラフィックである“オフ
スクリーン”を描画する必要がある時などに、孤立コン
テキストが使用される。同様に、グラフィックが描画さ
れた後で、該グラフィックを複製する場合、孤立コンテ
キストの使用は効果的なことが多い。
トである。図16に示す複数のステップは図10に示す
複数のステップに類似している。しかし、ステップ13
16では、孤立コンテキストを子コンテキスト(または
親コンテキスト、図示略)へコピーする必要があり、孤
立コンテキストは、この子コンテキスト(または親コン
テキスト)において最終的に表示される。JPEG及び
GIFなどで時々形成されるグラフィックである“オフ
スクリーン”を描画する必要がある時などに、孤立コン
テキストが使用される。同様に、グラフィックが描画さ
れた後で、該グラフィックを複製する場合、孤立コンテ
キストの使用は効果的なことが多い。
【0043】図17は子コンテキスト及び孤立コンテキ
ストを本発明の実施形態においてインプリメントするた
めに使用するagl(アプリケーションズ・グラフィック
ス・ライブラリ)ルーチンの例を示す。これらのルーチ
ンはaglCreateChildContext、aglDeleteChildContext、
aglBeginPaint、aglEndPaint、aglCreateOrphanContex
t、aglPutContext及びaglContextRedrawnを含むが、こ
れらに限定されるものではない。
ストを本発明の実施形態においてインプリメントするた
めに使用するagl(アプリケーションズ・グラフィック
ス・ライブラリ)ルーチンの例を示す。これらのルーチ
ンはaglCreateChildContext、aglDeleteChildContext、
aglBeginPaint、aglEndPaint、aglCreateOrphanContex
t、aglPutContext及びaglContextRedrawnを含むが、こ
れらに限定されるものではない。
【0044】要するに、ブラウザによって表示されたウ
ェブ・ページのHTML内のエレメントに対応する1つ
以上の子コンテキストを、本発明の前記の実施形態は提
供する。例えば、ブラウザによって実行される各アプレ
ットは、対応する独立した子コンテキストを有する。そ
して、各子コンテキストは関連するメモリ・バッファを
有する。更に、ブラウザは各コンテキストが指す親コン
テキストを有する。グラフィックをウィジェットを介し
て表示した際、ウィジェットはグラフィック(パネルま
たは押下されていないボタンなど)をアプレットの子コ
ンテキスト内で描画し、かつ、“ダメージ”フラグを子
コンテキスト内にセットする。ブラウザがそのメイン・
ブラウザ・ループを実施する際、ブラウザは各エレメン
ト(各アプレットを含む)のダメージ・フラグの状態を
チェックする。セットされたダメージ・フラグをブラウ
ザが検出した場合、ブラウザは情報を子バッファからデ
ィスプレイ・スクリーンの更新に使用する親バッファ内
へ取り込む。従って、JVM内の独立した幾つかのスレ
ッドは互いに干渉し合うことなく並行して実行可能であ
り、かつ、グラフィックス・エレメントを更新可能であ
る。
ェブ・ページのHTML内のエレメントに対応する1つ
以上の子コンテキストを、本発明の前記の実施形態は提
供する。例えば、ブラウザによって実行される各アプレ
ットは、対応する独立した子コンテキストを有する。そ
して、各子コンテキストは関連するメモリ・バッファを
有する。更に、ブラウザは各コンテキストが指す親コン
テキストを有する。グラフィックをウィジェットを介し
て表示した際、ウィジェットはグラフィック(パネルま
たは押下されていないボタンなど)をアプレットの子コ
ンテキスト内で描画し、かつ、“ダメージ”フラグを子
コンテキスト内にセットする。ブラウザがそのメイン・
ブラウザ・ループを実施する際、ブラウザは各エレメン
ト(各アプレットを含む)のダメージ・フラグの状態を
チェックする。セットされたダメージ・フラグをブラウ
ザが検出した場合、ブラウザは情報を子バッファからデ
ィスプレイ・スクリーンの更新に使用する親バッファ内
へ取り込む。従って、JVM内の独立した幾つかのスレ
ッドは互いに干渉し合うことなく並行して実行可能であ
り、かつ、グラフィックス・エレメントを更新可能であ
る。
【0045】子コンテキストのセットアップ、削除、読
取り及び変更を行い、かつ、情報を子コンテキストから
親コンテキストへコピーするためのルーチンを(少なく
とも)含むために、本発明はAGL(アプリケーション
ズ・グラフィックス・ライブラリ)ルーチンを拡張す
る。現在処理中のコンテキストを識別するパラメータを
含むために、DWL(ディベロッパーズ・ウィジェット
・ライブラリ)ルーチンを拡張する。各アプレットのコ
ンテキストのダメージ・フラグをチェックし、情報を子
コンテキストのバッファから親コンテキストのバッファ
内へ取り込む機能性をインプリメントするために、ブラ
ウザは拡張されている。
取り及び変更を行い、かつ、情報を子コンテキストから
親コンテキストへコピーするためのルーチンを(少なく
とも)含むために、本発明はAGL(アプリケーション
ズ・グラフィックス・ライブラリ)ルーチンを拡張す
る。現在処理中のコンテキストを識別するパラメータを
含むために、DWL(ディベロッパーズ・ウィジェット
・ライブラリ)ルーチンを拡張する。各アプレットのコ
ンテキストのダメージ・フラグをチェックし、情報を子
コンテキストのバッファから親コンテキストのバッファ
内へ取り込む機能性をインプリメントするために、ブラ
ウザは拡張されている。
【0046】ボタン、リスト及び選択バーなどのリアク
ティブ・コンポーネントは固有の問題を示す。ボタンな
どのウィジェットが押下された際にインタラクティブ・
ビヘイビア(上下の移動など)を示す必要がある際、こ
のビヘイビアを迅速に形成する必要がある。そして、比
較的頻繁に実行されないメイン・ブラウザ・ループによ
って、このビヘイビアを必ずピック・アップするために
は、このビヘイビアの形成は速過ぎる。従って、子コン
テキストをダメージを受けたものとして単にマークする
だけでは、子コンテキストはリアクティブ・コンポーネ
ントに関する表示を適切に更新できず、ブラウザ・ルー
プを待つことになる。
ティブ・コンポーネントは固有の問題を示す。ボタンな
どのウィジェットが押下された際にインタラクティブ・
ビヘイビア(上下の移動など)を示す必要がある際、こ
のビヘイビアを迅速に形成する必要がある。そして、比
較的頻繁に実行されないメイン・ブラウザ・ループによ
って、このビヘイビアを必ずピック・アップするために
は、このビヘイビアの形成は速過ぎる。従って、子コン
テキストをダメージを受けたものとして単にマークする
だけでは、子コンテキストはリアクティブ・コンポーネ
ントに関する表示を適切に更新できず、ブラウザ・ルー
プを待つことになる。
【0047】本発明を特定の実施形態に関連して詳述し
たが、当業者が多くの別例、変更例及びバリエーション
を前記の説明から明確に理解できることは明らかであ
る。従って、本発明の請求の範囲及びこれに等価なもの
の精神及び範囲内に属するこれら全ての別例、変更例及
びバリエーションを包含することを意図する。
たが、当業者が多くの別例、変更例及びバリエーション
を前記の説明から明確に理解できることは明らかであ
る。従って、本発明の請求の範囲及びこれに等価なもの
の精神及び範囲内に属するこれら全ての別例、変更例及
びバリエーションを包含することを意図する。
【図1】本発明の1つの実施形態に基づくデータ処理シ
ステムのブロック図である。
ステムのブロック図である。
【図2】本発明の1つの実施形態に基づくデータ処理シ
ステムのブロック図である。
ステムのブロック図である。
【図3】リモート・ユニット及びビデオ表示を含むセッ
ト・トップ・ボックス・システムの例を示す図である。
ト・トップ・ボックス・システムの例を示す図である。
【図4】本発明の実施形態に基づく親コンテキスト・デ
ータ・ストラクチャ及び子コンテキスト・データ・スト
ラクチャのブロック図である。
ータ・ストラクチャ及び子コンテキスト・データ・スト
ラクチャのブロック図である。
【図5】ブラウザと、ブラウザ・エレメントの例と、特
定のブラウザ・エレメントのコンポーネントの例との間
の関係を示す図である。
定のブラウザ・エレメントのコンポーネントの例との間
の関係を示す図である。
【図6】本発明の実施形態に基づく孤立データ・ストラ
クチャのブロック図である。
クチャのブロック図である。
【図7】メイン・ブラウザ・ループ及びJVMループを
示すブロック図である。
示すブロック図である。
【図8】アプレットをリフレッシュするプロセスを含む
メイン・ブラウザ・ループの詳細を示すフローチャート
である。
メイン・ブラウザ・ループの詳細を示すフローチャート
である。
【図9】メイン・ブラウザ・ループ内のアプレットをリ
フレッシュするプロセスの詳細を示すフローチャートで
ある。
フレッシュするプロセスの詳細を示すフローチャートで
ある。
【図10】通常の非リアクティブ・コンポーネントのた
めのメインJVMループを示すフローチャートである。
めのメインJVMループを示すフローチャートである。
【図11】ボタン押下などのリアクティブ・コンポーネ
ントのためのメインJVMループを示すフローチャート
である。
ントのためのメインJVMループを示すフローチャート
である。
【図12】図10及び図11の更に詳細を示す図であ
る。
る。
【図13】本発明の1つの実施形態のアーキテクチャを
示す図である。
示す図である。
【図14】押下されたボタンを示す図である。
【図15】解放されたボタンを示す図である。
【図16】孤立コンテキストのフローチャートである。
【図17】本発明の実施形態における子コンテキスト及
び孤立コンテキストをインプリメントするために使用す
るルーチンの例を示す図である。
び孤立コンテキストをインプリメントするために使用す
るルーチンの例を示す図である。
フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 ラジェシュ・カヌンゴ アメリカ合衆国 カリフォルニア州94087 サニーベイル,リメリック・コート, 765
Claims (13)
- 【請求項1】 リアクティブ・グラフィックス・エレメ
ントを表示する方法であって、 ブラウザによって、リアクティブ・グラフィックス・イ
ベントをバーチャル実行環境へ送信する工程と、 前記ブラウザ内の親コンテキストと、前記ブラウザによ
って実行されるアプレットとにそれぞれ対応する子コン
テキストを、前記バーチャル実行環境内に提供する工程
と、 ディスプレイ・スクリーン上へ表示する前記リアクティ
ブ・グラフィックス・イベントに基づき、前記バーチャ
ル実行環境によって、第1グラフィックを前記子コンテ
キストのバッファ及び前記親コンテキストのバッファ内
へそれぞれ書き込む工程と、 所定の時間待機する工程と、 ディスプレイ・スクリーン上へ表示する前記リアクティ
ブ・グラフィックス・イベントに基づき、前記バーチャ
ル実行環境によって、第2グラフィックを前記子コンテ
キストのバッファ及び前記親コンテキストのバッファ内
へそれぞれ書き込む工程と、 エクセキューション・コントロールを前記バーチャル実
行環境から前記ブラウザへ戻す工程とを含む方法。 - 【請求項2】 前記ブラウザ内の親コンテキストに対応
する第2子コンテキストを前記バーチャル実行環境内に
提供する工程を更に含み、前記子コンテキストは前記ブ
ラウザによって実行される第2アプレットに対応してい
る請求項1に記載の方法。 - 【請求項3】 リアクティブ・グラフィックス・エレメ
ントを表示する装置であって、 ディスプレイを更新するために使用する親コンテキスト
を有するブラウザであって、リアクティブ・グラフィッ
クス・イベントをバーチャル実行環境へ送信するために
形成されたブラウザと、 前記親コンテキストと、前記ブラウザによって実行され
るアプレットとにそれぞれ対応する子コンテキストを、
前記バーチャル実行環境内に提供するために形成された
ソフトウェア回路と、 前記ディスプレイ上へ表示する前記リアクティブ・グラ
フィックス・イベントに基づき、前記バーチャル実行環
境によって、第1グラフィックを前記子コンテキストの
バッファ及び前記親コンテキストのバッファ内へそれぞ
れ書き込むために形成されたソフトウェア回路と、 所定の時間待機するために形成されたソフトウェア回路
と、 前記ディスプレイ上へ表示する前記リアクティブ・グラ
フィックス・イベントに基づき、前記バーチャル実行環
境によって、第2グラフィックを前記子コンテキストの
バッファ及び前記親コンテキストのバッファ内へそれぞ
れ書き込むために形成されたソフトウェア回路と、 エクセキューション・コントロールを前記バーチャル実
行環境から前記ブラウザへ戻すために形成されたソフト
ウェア回路とを含む装置。 - 【請求項4】 コンピュータ・プログラム製品であっ
て、 データ処理システムによるリアクティブ・グラフィック
ス・エレメントの表示を引き起こすための組込みコンピ
ュータ読取り可能コードを含むコンピュータ使用可能媒
体を有し、前記コンピュータ使用可能媒体は、 前記データ処理システムがブラウザを用いてリアクティ
ブ・グラフィックス・イベントをバーチャル実行環境へ
送信することを引き起こすために形成されたコンピュー
タ読取り可能プログラム・コードと、 前記ブラウザ内の親コンテキストに関連する子コンテキ
ストであって、前記ブラウザによって実行されるアプレ
ットに対応する子コンテキストを、前記データ処理シス
テムが前記バーチャル実行環境内に提供することを引き
起こすために形成されたコンピュータ読取り可能プログ
ラム・コードと、 ディスプレイ・スクリーン上へ表示する前記リアクティ
ブ・グラフィックス・イベントに基づき、データ処理シ
ステムが前記バーチャル実行環境を用いて第1グラフィ
ックを前記子コンテキストのバッファ及び前記親コンテ
キストのバッファ内へそれぞれ書き込むことを引き起こ
すために形成されたコンピュータ読取り可能プログラム
・コードと、 前記データ処理システムが所定の時間待機することを引
き起こすために形成されたコンピュータ読取り可能プロ
グラム・コードと、 ディスプレイ・スクリーン上へ表示する前記リアクティ
ブ・グラフィックス・イベントに基づき、前記データ処
理システムが前記バーチャル実行環境を用いて第2グラ
フィックを前記子コンテキストのバッファ及び前記親コ
ンテキストのバッファ内へそれぞれ書き込むことを引き
起こすために形成されたコンピュータ読取り可能プログ
ラム・コードと、 前記データ処理システムがエクセキューション・コント
ロールを前記バーチャル実行環境から前記ブラウザへ戻
すことを引き起こすために形成されたコンピュータ読取
り可能プログラム・コードとを有するコンピュータ・プ
ログラム製品。 - 【請求項5】 前記バーチャル実行環境はアプリケーシ
ョンズ・グラフィックス・ライブラリ(AGL)ルーチ
ンを提供し、前記アプリケーションズ・グラフィックス
・ライブラリ(AGL)ルーチンは子コンテキスト・セ
ットアップ・ルーチンと、子コンテキスト削除ルーチン
と、子コンテキスト読取りルーチンと、子コンテキスト
変更ルーチンと、情報を前記子コンテキストから親コン
テキストへコピーするためのルーチンとを含む請求項1
に記載の方法。 - 【請求項6】 前記複数のAGLルーチンのうちの1つ
を呼び出す工程を更に含む請求項5に記載の方法。 - 【請求項7】 前記アプレットは、前記ブラウザによっ
て互いに異なるスレッドとして実行される複数のアプレ
ットのうちの1つであり、前記各アプレットは子コンテ
キストに関連しており、前記各子コンテキストは前記親
コンテキストに対応している請求項1に記載の方法。 - 【請求項8】 前記各子コンテキストは、前記ディスプ
レイ上に表示されるブラウザ・エレメントに対応してい
る請求項7に記載の方法。 - 【請求項9】 対応する子バッファのコンテントが変更
されたか否かを示すダメージ・フラグを、前記子コンテ
キストが更に有する請求項1に記載の方法。 - 【請求項10】 前記関連するアプレットがリアクティ
ブ・エレメントを有するか否かを示す再帰的更新フラグ
を、前記子コンテキストが更に有する請求項1に記載の
方法。 - 【請求項11】 グラフィック・ウィジェット・インタ
ラクションの方法であって、 押下、解放及び選択のうちの1つを示すキー・イベント
を受信する工程と、前記キー・イベントはリアクティブ
または非リアクティブであり、前記選択はブラウザが実
行するアプレットによって表示されるアイテムの選択を
示し、前記ブラウザはディスプレイを更新するために使
用する親コンテキストを有することと、 前記親コンテキストに関連する子コンテキストを仮想マ
シン内に提供する工程と、 仮想マシンループを前記仮想マシンによって実施する工
程とを含み、前記仮想マシンループを前記仮想マシンに
よって実施する工程は、 前記キー・イベントに対応するグラフィック・ウィジェ
ットを突き止める工程と、 前記キー・イベントがリアクティブである場合、前記子
コンテキスト内の再帰的更新フラグをセットする工程
と、 前記キー・イベントが非リアクティブである場合、前記
子コンテキスト内の前記再帰的更新フラグをリセットす
る工程と、 前記子コンテキスト内のダメージ・フラグをセットする
工程と、 前記再帰的更新フラグがリセットされている場合、前記
子コンテキストのみを更新するために、前記対応するグ
ラフィック・ウィジェットを使用する工程と、 前記再帰的更新フラグがセットされている場合、前記子
コンテキスト及び前記親コンテキストの両方を前記対応
するグラフィック・ウィジェットを通じて更新し、前記
親コンテキストの更新はブラウザ・ループを待つことを
要することなく前記ディスプレイ上に自動的に反映され
るようにする工程とを含む方法。 - 【請求項12】 前記キー・イベントをブラウザ・ルー
プへの入力のキューへ加える工程と、 前記ブラウザ・ループを前記ブラウザによって実施する
工程とを更に含み、前記ブラウザ・ループを前記ブラウ
ザによって実施する工程は、前記キー・イベントが押下
または解放である場合、アクティビティを実施する工程
と、 前記キー・イベントが選択である場合、仮想マシンイベ
ントを前記仮想マシンループへの入力のキュー内へポス
トする工程と、 前記ブラウザによって実行される各アプレットをリフレ
ッシュする工程とを含み、前記各アプレットをリフレッ
シュする工程は、 前記アプレットをリフレッシュする必要を決定するため
のダメージ・フラグを使用する工程と、 関連する子コンテキスト及び前記親コンテキストをロッ
クする工程と、 前記ディスプレイを更新するために、前記グラフィック
ス・データを前記関連する子コンテキストから親コンテ
キストへ取り込む工程とを含む請求項11に記載の方
法。 - 【請求項13】 前記押下のキー・イベント及び解放の
キー・イベントはボタン及びキーのうちのいずれか一方
の押下及び解放をそれぞれ示す請求項12に記載の方
法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/203,043 US6266056B1 (en) | 1998-11-30 | 1998-11-30 | Display widget interaction in embedded systems using child graphics contexts |
| US09/203043 | 1998-11-30 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000200180A true JP2000200180A (ja) | 2000-07-18 |
Family
ID=22752235
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP34033699A Pending JP2000200180A (ja) | 1998-11-30 | 1999-11-30 | 組込みシステム内における子グラフィックス・コンテキストを使用したディスプレイ・ウィジェット・インタラクション |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US6266056B1 (ja) |
| EP (1) | EP1006440B1 (ja) |
| JP (1) | JP2000200180A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2022538110A (ja) * | 2019-06-27 | 2022-08-31 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | ページ描画制御方法、装置およびデバイス |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6480888B1 (en) * | 1998-12-29 | 2002-11-12 | At&T Corp. | Virtual path concentrator node with loopback |
| US6857124B1 (en) * | 1999-01-11 | 2005-02-15 | Eolas Technologies, Inc. | Method and system for hypermedia browser API simulation to enable use of browser plug-ins and applets as embedded widgets in script-language-based interactive programs |
| US8255809B2 (en) | 1999-12-23 | 2012-08-28 | International Business Machines Corporation | Webtop: multiple applet delivery within a fixed-sized viewing space |
| US7814157B2 (en) * | 2000-01-11 | 2010-10-12 | Eolas Technlogies, Inc. | Hypermedia browser API simulation to enable use of browser plug-ins and applets as embedded widgets in script-language-based interactive programs |
| FR2823333B1 (fr) * | 2001-04-05 | 2003-06-20 | France Telecom | Systeme terminal interactif a equipement central multi-applicatif et peripheriques |
| US8147334B2 (en) * | 2003-09-04 | 2012-04-03 | Jean-Marie Gatto | Universal game server |
| US7650572B2 (en) * | 2003-02-28 | 2010-01-19 | Bea Systems, Inc. | Graphical user interface navigation method |
| CN100403258C (zh) * | 2004-07-21 | 2008-07-16 | 中国科学院软件研究所 | 嵌入式设备集成开发系统及其使用方法 |
| US20070168872A1 (en) * | 2006-01-19 | 2007-07-19 | Raytheon Company | Multi-monitor, multi-JVM java GUI infrastructure with layout via XML |
| US8407212B2 (en) | 2009-05-20 | 2013-03-26 | Genieo Innovation Ltd. | System and method for generation of a customized web page based on user identifiers |
| KR101624137B1 (ko) * | 2009-11-18 | 2016-06-07 | 삼성전자주식회사 | 표시 화면 업데이트 방법 및 이를 이용한 휴대 단말기 |
| US10210026B2 (en) * | 2011-09-30 | 2019-02-19 | Oracle International Corporation | Enterprise tools enhancements |
| CN103838486B (zh) * | 2014-03-21 | 2017-06-06 | 深圳市金立通信设备有限公司 | 一种终端显示页面的操作方法及终端 |
| CN110187931B (zh) * | 2019-05-17 | 2022-05-17 | 北京百度网讯科技有限公司 | 小程序的运行方法及装置 |
| CN111125580B (zh) * | 2019-12-09 | 2023-08-15 | 北京五八信息技术有限公司 | 网络资源获取方法、装置、电子设备及存储介质 |
| CN111596919B (zh) * | 2020-05-27 | 2023-10-20 | 北京字节跳动网络技术有限公司 | 图文绘制结果的展示方法、装置、计算机设备及存储介质 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2030438C (en) * | 1990-01-22 | 2002-05-28 | Donald Vincent Alecci | Method of reducing data storage requirements associated with computer windowing environments |
| US5548745A (en) * | 1993-01-19 | 1996-08-20 | Canon Kabushiki Kaisha | Method and apparatus for designating context in a windowing environment |
| US5802530A (en) * | 1996-07-01 | 1998-09-01 | Sun Microsystems, Inc. | Web document based graphical user interface |
| US5922044A (en) * | 1996-12-13 | 1999-07-13 | 3Com Corporation | System and method for providing information to applets in a virtual machine |
| US5916310A (en) * | 1997-08-18 | 1999-06-29 | Novell, Inc. | Method and system for enhancing keyboard functionality in an HTML document |
-
1998
- 1998-11-30 US US09/203,043 patent/US6266056B1/en not_active Expired - Lifetime
-
1999
- 1999-11-29 EP EP99309535A patent/EP1006440B1/en not_active Expired - Lifetime
- 1999-11-30 JP JP34033699A patent/JP2000200180A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2022538110A (ja) * | 2019-06-27 | 2022-08-31 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | ページ描画制御方法、装置およびデバイス |
| JP7460249B2 (ja) | 2019-06-27 | 2024-04-02 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | ページ描画制御方法、装置およびデバイス |
Also Published As
| Publication number | Publication date |
|---|---|
| EP1006440A2 (en) | 2000-06-07 |
| EP1006440B1 (en) | 2006-08-30 |
| US6266056B1 (en) | 2001-07-24 |
| EP1006440A3 (en) | 2002-11-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6546397B1 (en) | Browser based web site generation tool and run time engine | |
| US5867175A (en) | Method and apparatus for scriping animation | |
| US20210303108A1 (en) | System and method for on-screen graphical user interface encapsulation and reproduction | |
| JP2000200180A (ja) | 組込みシステム内における子グラフィックス・コンテキストを使用したディスプレイ・ウィジェット・インタラクション | |
| US8352875B2 (en) | System and method for integrating a plurality of software applications | |
| JP3816540B2 (ja) | 動的にユーザ・パネルを生成する方法 | |
| CA2118201C (en) | Photon windowing kernel | |
| US6397262B1 (en) | Window kernel | |
| US7900215B2 (en) | Method and apparatus for providing inter-application accessibility | |
| JP5284509B2 (ja) | ページ分割されたコンテンツを表示し、それと対話するための方法およびシステム | |
| US5437006A (en) | Spreadsheet command/function capability from a dynamic-link library | |
| US20130057561A1 (en) | System and method for rendering graphics content associated with an application process to a display area managed by another process | |
| US20020041289A1 (en) | Method and apparatus for producing functionality and user interfaces for devices having an embedded operating system | |
| CN105204797A (zh) | 屏幕分享方法以及使用该方法的装置 | |
| JP2000200179A (ja) | 組込みシステム内におけるバッファレス子グラフィックス・コンテキストを使用したアプレット及びアプリケ―ションの表示 | |
| US6351272B1 (en) | Applet and application display in embedded systems using child and orphan graphics contexts | |
| US8458336B2 (en) | State machine event restoration | |
| JP2001521217A (ja) | トラッグおよびドロップのインターフエイスを用いて制御をアブリケーションに結び付けるシステム | |
| JP7503685B1 (ja) | 埋込プログラム、画面表示プログラム及び画面表示方法 | |
| US20230350532A1 (en) | System and method for on-screen graphical user interface encapsulation and application history reproduction | |
| US7464382B1 (en) | UI aware method invocation transferring to java event dispatch thread | |
| Pavlidis | Fundamentals of X programming: graphical user interfaces and beyond | |
| Newmarch | Using tcl to Replay Xt Applications | |
| Windows | Control Basics | |
| MacDonald | Control Class Basics |