JP2007148874A - Event delivery method in event-driven type application and digital broadcast receiver - Google Patents
Event delivery method in event-driven type application and digital broadcast receiver Download PDFInfo
- Publication number
- JP2007148874A JP2007148874A JP2005343574A JP2005343574A JP2007148874A JP 2007148874 A JP2007148874 A JP 2007148874A JP 2005343574 A JP2005343574 A JP 2005343574A JP 2005343574 A JP2005343574 A JP 2005343574A JP 2007148874 A JP2007148874 A JP 2007148874A
- Authority
- JP
- Japan
- Prior art keywords
- event
- state machine
- script
- registered
- registration information
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
本発明は、ユーザインターフェース(以下、単にUIとも言う)を有するスクリプトを実行するイベント駆動型アプリケーションにおけるイベント配送方法およびそれを実施するデジタル放送受信装置に関するものである。 The present invention relates to an event delivery method in an event-driven application that executes a script having a user interface (hereinafter also simply referred to as UI), and a digital broadcast receiving apparatus that implements the event delivery method.
現在、衛星デジタル放送や地上デジタル放送におけるデータ放送では、XHTML(eXtensible Hyper Text Markup Language)を拡張したBML(Broadcast Markup Language)というマークアップ言語で記述された文書を送信し、このBML文書を受信機で受信・表示してイベント処理を行っている。 Currently, in data broadcasting in satellite digital broadcasting and terrestrial digital broadcasting, a document described in a markup language called BML (Broadcast Markup Language), which is an extension of XHTML (eXtensible Hyper Text Markup Language), is transmitted, and the BML document is received by the receiver. Receives and displays the event processing.
BML文書には、表示するテキストやスタイルの他に、イベントとスクリプトとを定義し、イベント発生時に実行すべき関数をスクリプトで記述できるようになっている。スクリプトには、ECMAScriptと呼ばれる言語が採用されている。ECMAScriptは、ECMA(European Computer Manufacturers’ Association)がECMA−262として定めたスクリプト言語で、ISO/IEC 16262として承認されたものが、ECMA−262 second editionとして発行されている。さらに、ECMA−262はthird editionが発行されている。 In the BML document, in addition to text and style to be displayed, an event and a script are defined, and a function to be executed when the event occurs can be described by the script. The script employs a language called ECMAScript. ECMAScript is a script language defined by ECMA (European Computer Manufacturers' Association) as ECMA-262, and is approved as ISO / IEC 16262 and issued as ECMA-262 second edition. Further, ECMA-262 has a third edition issued.
また、従来、地上デジタル放送を携帯機器で受信するための運用規定が定められている。この運用規定では、地上デジタル放送を受信する携帯機器においてもBMLで記述された文書を表示してECMAScriptを実行することが求められている。 Conventionally, operational rules for receiving terrestrial digital broadcasts with mobile devices have been established. According to this operational rule, a mobile device that receives terrestrial digital broadcasting is also required to display a document described in BML and execute ECMAScript.
一方、従来のスクリプトとして、例えばレーザービームプリンタにおけるページ記述言語が知られている。また、スクリプトプログラムを実行するものとして、例えば入力されたインタープリタプログラムから冗長なコマンドを削除して最適化することで処理速度の高速化を図ったインタープリタ実行装置(例えば、特許文献1参照)や、スクリプトを中間コードに変換してから実行することで処理速度の高速化を図った画像形成装置(例えば、特許文献2参照)も知られている。 On the other hand, for example, a page description language in a laser beam printer is known as a conventional script. As an example of executing a script program, for example, an interpreter execution device (see, for example, Patent Document 1) that increases the processing speed by deleting and optimizing redundant commands from an input interpreter program, There is also known an image forming apparatus (see, for example, Patent Document 2) in which processing speed is increased by converting a script into an intermediate code and executing the script.
ここで、スクリプトは、人が記述する高級言語であり、中央演算処理装置(CPU,Central Processing Unit)に依存した機械語命令にコンパイルせずに、インタープリタによって解釈実行されることが特徴である。また、インタープリタは、通常、字句解析(lexical analysis)と、構文解析(syntax analysis)との処理機能を備えており、公知のソフトウエアでは、lexにより字句解析器を作成することができ、yacc、bisonにより構文解析器を作成することができる。 Here, the script is a high-level language written by a person, and is characterized by being interpreted and executed by an interpreter without being compiled into machine language instructions depending on a central processing unit (CPU). The interpreter usually has processing functions for lexical analysis and syntax analysis. In known software, a lexical analyzer can be created by lex, and yacc, A parser can be created with bison.
構文解析器は、解析結果として実行処理が可能な中間表現を作成するもので、この中間表現には、評価器(Evaluater)によって評価可能なツリー表現と、仮想マシン(VM,Virtual Machine)によって実行可能な中間コードとがある。 The syntax analyzer creates an intermediate expression that can be executed as an analysis result. This intermediate expression is executed by a tree expression that can be evaluated by an evaluator and a virtual machine (VM). There are possible intermediate codes.
ツリー表現は、例えばDavid Leonard氏によって作成され公開されたSEE(Simple ECMAScript Engine)が採用している(http://www.adaptive-enterprises.com.au/~d/software/see/ 参照)。 The tree representation is adopted by, for example, SEE (Simple ECMAScript Engine) created and published by David Leonard (see http://www.adaptive-enterprises.com.au/~d/software/see/).
また、中間コードは、仮想マシンで処理するか、あるいはさらに本来のCPUの機械語に変換して実行される。仮想マシンで処理する場合は、多くの場合、関数の引数と戻り値とをスタックのみを用いて受け渡すスタックマシンを採用して、仮想マシンが中間言語で記述された処理を実行するようにしており、例えばThe Mozilla Organizationが公開している、Spider Monkeyと言うコードネームのECMAScriptインタープリタが知られている(http://www.mozilla.org/js/spidermonkey/ 参照)。 Further, the intermediate code is processed by a virtual machine, or further converted into an original CPU machine language and executed. When processing with a virtual machine, in many cases, a stack machine that passes function arguments and return values using only the stack is adopted so that the virtual machine executes processing described in an intermediate language. For example, the ECMAScript interpreter codenamed Spider Money published by The Mozilla Organization is known (see http://www.mozilla.org/js/spidermonkey/).
評価器によりツリー表現を評価する場合には、本来の実行環境における関数呼び出しが多数発生し、また様々な付随した処理を必要とすることから、実行速度が仮想マシン方式よりも遅くなり、また本来の実行環境におけるスタックメモリを多く消費することになる。このため、ツリー表現は、簡易なインタープリタで使用され、より高度なインタープリタでは、中間コードが採用され、さらに処理を高速化する場合には中間コードを機械語に変換して実行することが行われている。 When evaluating the tree representation with the evaluator, many function calls occur in the original execution environment, and various accompanying processes are required. Therefore, the execution speed is slower than that of the virtual machine method. This consumes a lot of stack memory in the execution environment. For this reason, the tree representation is used in a simple interpreter, and an intermediate code is adopted in a more advanced interpreter, and when the processing is further accelerated, the intermediate code is converted into a machine language and executed. ing.
なお、実行環境とは、開発環境に対する名称でランタイムとも呼ばれ、ある目的のために開発作成されたスクリプトまたはその中間コードを実行し、かつ実行時に必要な標準関数などを提供するソフトウエアである。したがって、実行環境は、少なくとも中間表現を処理実行する機能を含む必要があるが、字句解析器および構文解析器等を備えて、インタープリタ全体を含んでいてもよい。 Note that the execution environment is the name for the development environment, also called runtime, and is software that executes a script developed for a certain purpose or its intermediate code and provides standard functions necessary for execution. . Therefore, the execution environment needs to include at least a function for processing and executing the intermediate expression, but may include a lexical analyzer and a syntax analyzer, and may include the entire interpreter.
しかしながら、従来のツリー表現を評価実行するインタープリタでは、ツリーのルートから評価を開始し、ルート側の結果が確定しないままツリーのリーフ側の評価をネストで開始するようにしている。このため、本来の実行環境では、評価関数が次々とネストして呼び出されてスタックが消費されることから、スクリプトの実行中に実行を一時保留して、CPUの実行権限をOS(Operating System)に戻し、他のタスクと実行権限を分かち合うといった処理ができなくなる。つまり、スクリプトの実行を開始すると、その処理が完了するまで、CPUの実行権限が独占されてしまうことから、途中でユーザが所望する他のタスクを実行できないという問題がある。 However, in an interpreter that evaluates and executes a conventional tree expression, evaluation is started from the root of the tree, and evaluation on the leaf side of the tree is started by nesting without determining the result on the root side. For this reason, in the original execution environment, evaluation functions are called one after another in a nested manner, and the stack is consumed. Therefore, execution is temporarily suspended during execution of the script, and the execution authority of the CPU is assigned to the OS (Operating System). The process of sharing the execution authority with other tasks cannot be performed. That is, when the execution of the script is started, the execution authority of the CPU is monopolized until the processing is completed, and thus there is a problem that other tasks desired by the user cannot be executed midway.
これに対し、従来の中間コードを仮想マシンで実行するスクリプト実行環境やインタープリタでは、スクリプト実行時の状態が、仮想マシンがアクセスするスタックに保存されており、このスタックは実行コンテキストの中に存在して本来の実行環境のスタックとは独立している。したがって、中間コードを生成する際に、処理を一時保留するための命令を挿入するなどすれば、仮想マシンでの処理を保留して、実行状態を保存したままCPUの実行権限をOSに戻し、その後、CPUの実行権限を得た際に処理を再開することが可能である。 In contrast, in a script execution environment or interpreter that executes conventional intermediate code in a virtual machine, the state at the time of script execution is stored in a stack accessed by the virtual machine, and this stack exists in the execution context. Independent of the stack of the original execution environment. Therefore, when generating an intermediate code, if an instruction for temporarily suspending the process is inserted, the process in the virtual machine is suspended and the execution authority of the CPU is returned to the OS while the execution state is preserved. Thereafter, the processing can be resumed when the execution authority of the CPU is obtained.
しかし、このタイプのスクリプト実行環境でも、スクリプトがUI(User Interface)に表示を行って、ユーザが選択した結果のイベントを受け取ろうとすると、そのイベントをスクリプトが受け取ることができない。 However, even in this type of script execution environment, if the script displays on a UI (User Interface) and tries to receive an event as a result of selection by the user, the script cannot receive the event.
以下、この点について、さらに詳細に説明する。 Hereinafter, this point will be described in more detail.
通常、UIとインタラクションをするアプリケーションは、イベント駆動型アプリケーションとして作成される。このイベント駆動型アプリケーションは、イベントハンドラを備えており、アプリケーション実行環境はイベントハンドラを呼び出してイベントを配送する。イベントハンドラでは、通知されたイベントに応じて実行すべき処理を記述しておく。 Usually, an application that interacts with a UI is created as an event-driven application. This event-driven application includes an event handler, and the application execution environment calls the event handler and delivers the event. In the event handler, a process to be executed according to the notified event is described.
複雑なアプリケーションでは、状態マシンを備えるのが普通であり、イベントハンドラは状態マシンを呼び出してイベントを配送し、状態マシンはイベントを受けると状態を変化させることにより、所望の仕様の処理を実現することが可能となる。ここで、配送されるイベントには、それをどの関数(あるいは状態マシン)が処理するべきかという付加情報を添付することができるので、イベントハンドラはユーザ操作により発生したイベントを適切な関数(や状態マシン)に配送することができる。 In complex applications, it is common to have a state machine, and the event handler calls the state machine to deliver the event, and the state machine changes the state when the event is received, thereby realizing processing of a desired specification. It becomes possible. Here, since an additional information indicating which function (or state machine) should process the event can be attached to the delivered event, the event handler can change the event generated by the user operation to an appropriate function ( State machine).
しかし、このようなイベント駆動型アプリケーションにおいて、スクリプト実行中に、スクリプトがUIに表示を行い、ユーザが選択した結果のイベントをスクリプトが受け取ろうとすると、イベントハンドラは受け取ったイベントを配送すべき適切な関数(や状態マシン)を見出すことができないため、イベントを受け取ることができないことになる。このため、例えば地上デジタル放送の受信装置において、擬似オブジェクトがUI上にダイアログを出し、ユーザに選択させようとしても、それを実現することができないことになる。 However, in such an event-driven application, during script execution, if the script displays on the UI and the script attempts to receive the event that the user has selected, the event handler must deliver the appropriate event to be delivered. Since the function (or state machine) cannot be found, the event cannot be received. For this reason, for example, in a terrestrial digital broadcast receiving apparatus, even if a pseudo object issues a dialog on the UI and causes the user to select it, it cannot be realized.
したがって、かかる事情に鑑みてなされた本発明の第1の目的は、UIを有するスクリプト実行中に、ユーザ操作により発生したイベントを適切に処理できるイベント駆動型アプリケーションにおけるイベント配送方法を提供することにある。 Accordingly, a first object of the present invention made in view of such circumstances is to provide an event delivery method in an event-driven application that can appropriately process an event generated by a user operation during execution of a script having a UI. is there.
さらに、本発明の第2の目的は、上記のイベント配送方法を実施し、例えば地上デジタル放送の受信において擬似オブジェクトがUI上にダイアログを出して、ユーザに選択させることができ、使い勝手を向上できるデジタル放送受信装置を提供することにある。 Furthermore, a second object of the present invention is to implement the event delivery method described above, and for example, when receiving a terrestrial digital broadcast, a pseudo object can display a dialog on the UI and allow the user to select, thereby improving usability. It is to provide a digital broadcast receiving apparatus.
上記第1の目的を達成する請求項1に係るイベント駆動型アプリケーションにおけるイベント配送方法の発明は、ユーザインターフェースを有するスクリプトを実行するイベント駆動型アプリケーションにおけるイベントを配送するにあたり、前記スクリプトが実行される際に、対応する状態マシンを一時的に確保するとともに、イベントハンドラに前記状態マシンを登録し、所定のイベントを受けた際に、前記イベントハンドラに前記状態マシンが登録されていれば、当該状態マシンへ前記イベントを配送することを特徴とするものである。
In the event delivery method for an event-driven application according to
請求項2に係る発明は、請求項1に記載のイベント駆動型アプリケーションにおけるイベント配送方法において、前記イベントを前記状態マシンへ配送する際に、前記イベントハンドラにおける前記状態マシンの登録を削除することを特徴とするものである。
The invention according to
請求項3に係る発明は、請求項1または2に記載のイベント駆動型アプリケーションにおけるイベント配送方法において、前記イベントハンドラに前記状態マシンを登録する際に有効状態で登録し、所定のイベントを受けた際に、前記イベントハンドラに前記状態マシンが登録されていて、かつ有効状態であれば、当該状態マシンへ前記イベントを配送することを特徴とするものである。 According to a third aspect of the present invention, in the event delivery method in the event-driven application according to the first or second aspect, when the state machine is registered in the event handler, the state machine is registered in a valid state and a predetermined event is received. In this case, if the state machine is registered in the event handler and is in a valid state, the event is delivered to the state machine.
請求項4に係る発明は、請求項1乃至3のいずれか一項に記載のイベント駆動型アプリケーションにおけるイベント配送方法において、前記状態マシンを一時的に確保したら、前記スクリプトを待ち状態に遷移させ、前記状態マシンの処理が完了したら、前記スクリプトの実行を再開させることを特徴とするものである。 According to a fourth aspect of the present invention, in the event delivery method in the event-driven application according to any one of the first to third aspects, when the state machine is temporarily secured, the script is shifted to a waiting state, When the processing of the state machine is completed, the execution of the script is resumed.
さらに、上記第2の目的を達成する請求項5に係る発明は、ユーザインターフェースを有するスクリプトを実行する請求項1乃至4のいずれか一項に記載のイベント駆動型アプリケーションにおけるイベント配送方法を実施するデジタル放送受信装置であって、前記イベント駆動型アプリケーションを格納する記憶手段と、デジタル放送受信手段と、少なくとも前記デジタル放送受信手段で受信した情報を表示する表示手段と、前記表示手段における表示情報に応じて、前記スクリプトが実行される際に、対応する状態マシンを一時的に確保するとともに、イベントハンドラに前記状態マシンを登録し、所定のイベントを受けた際に、前記イベントハンドラに前記状態マシンが登録されていれば、当該状態マシンへ前記イベントを配送するように制御する制御手段と、を有することを特徴とするものである。
Furthermore, the invention according to
本発明によるイベント駆動型アプリケーションにおけるイベント配送方法によれば、スクリプトが実行される際に、対応する状態マシンを一時的に確保してイベントハンドラに登録し、所定のイベントを受けた際にイベントハンドラに前記状態マシンが登録されていれば、当該状態マシンへイベントを配送するので、UIを有するスクリプト実行中に、ユーザ操作により発生したイベントを適切に処理することができる。 According to the event delivery method in the event-driven application according to the present invention, when a script is executed, a corresponding state machine is temporarily secured and registered in the event handler, and when a predetermined event is received, the event handler If the state machine is registered, the event is delivered to the state machine, so that the event generated by the user operation can be appropriately processed during the execution of the script having the UI.
さらに、本発明によるデジタル放送受信装置によれば、デジタル放送の受信表示に応じて、ユーザインターフェースを有するスクリプトが実行される際に、対応する状態マシンを一時的に確保してイベントハンドラに登録し、所定のイベントを受けた際にイベントハンドラに前記状態マシンが登録されていれば、当該状態マシンへイベントを配送するように制御するようにしたので、例えば地上デジタル放送の受信において擬似オブジェクトがUI上にダイアログを出して、ユーザに選択させることができ、使い勝手を向上することができる。 Furthermore, according to the digital broadcast receiving apparatus of the present invention, when a script having a user interface is executed in response to a digital broadcast reception display, a corresponding state machine is temporarily secured and registered in the event handler. If the state machine is registered in the event handler when a predetermined event is received, the control is performed so that the event is delivered to the state machine. A dialog can be displayed on the top to allow the user to make a selection and improve usability.
以下、本発明の実施の形態について図を参照して説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
(第1実施の形態)
図1乃至図3は本発明の第1実施の形態に係るイベント駆動型アプリケーションにおけるイベント配送方法を説明するもので、図1はイベント駆動型アプリケーションの概念的構成を示すブロック図、図2および図3は動作を示すフローチャートである。
(First embodiment)
FIGS. 1 to 3 illustrate an event delivery method in an event-driven application according to the first embodiment of the present invention. FIG. 1 is a block diagram showing a conceptual configuration of the event-driven application, FIG. 2 and FIG. 3 is a flowchart showing the operation.
図1において、イベント駆動型アプリケーション1(以下、単にアプリケーション1とも言う)は、OS(Operating System)9が管理するタスクの一つであるアプリケーション実行環境8の上で動作する。
In FIG. 1, an event-driven application 1 (hereinafter also simply referred to as application 1) operates on an
アプリケーション1は、イベントハンドラ2を備えており、イベントハンドラ2は登録部3を備えている。アプリケーション実行環境8はイベントハンドラ2を呼び出してイベントを配送する。なお、イベントハンドラ2にイベントの処理方法を実装しておくこともできるが、本実施の形態におけるアプリケーション1は状態マシンとして動作するもので、ディフォルト状態マシン6を備えており、このディフォルト状態マシン6にイベントを配送する。
The
ディフォルト状態マシン6は、イベントI/F(Interface)関数7を備えており、イベントハンドラ2はこのイベントI/F関数7を呼び出すことによってイベントを配送する。
The
また、アプリケーション1は、一時的状態マシン4をヒープに割り当てるようになっている。この一時的状態マシン4は、イベントI/F関数5を備えており、イベントの配送を受け取れるように実装される。なお、アプリケーション1の起動時の状態では、一時的状態マシン4はまだ確保されていない。
In addition, the
次に、図2に示すフローチャートを参照して動作を説明する。 Next, the operation will be described with reference to the flowchart shown in FIG.
先ず、ステップ101で、一時的状態マシン4を確保して、初期化する。この処理は、アプリケーション1に実装されているディフォルト状態マシン6によって実行する。
First, in
その後、ステップ102で、一時的状態マシン4を実行する。この一時的状態マシン4の実行処理は、通常は実行イベントを配送することによって行うが、ここでは専用の関数もしくはイベントI/F関数5をコールすることによって行う。
Thereafter, in
次に、ステップ103で、イベントハンドラ2の登録部3に一時的状態マシン4の登録情報を有効状態で登録する。ここで、登録情報は、一時的状態マシン4が動作を行うためのインスタンスのアドレスまたはハンドルと、イベントを受け取るためのイベントI/F関数5のアドレスとの双方とするか、あるいはインスタンスのアドレスからイベントI/F関数5のアドレスが求められる場合は、インスタンスのアドレスだけとするか、あるいはインスタンスのアドレスとイベントI/F関数5のアドレスとをテーブルに登録しておく場合には、そのテーブル内でのインデクスとする。
Next, in
次に、ステップ104で、一時的状態マシン4によりUI上にダイアログを表示する。このダイアログの表示処理では、アプリケーション実行環境8が提供するAPI(Application Program Interface)をコールして、画面上にダイアログを表示する。
Next, in
次に、ステップ105で、一時的状態マシン4をUIイベント待ち状態に遷移させる。これにより、イベントハンドラ2はリターンし、CPUの実行権限はアプリケーション1から解放される。
Next, in
その後、ステップ106で、ユーザによりキー操作されたらダイアログを閉じる。この際、アプリケーション実行環境8はダイアログを画面から消去し、ユーザの選択に応じた情報を伴ったUIイベントを発生させる。
Thereafter, in
次に、ステップ107で、イベントハンドラ2はアプリケーション実行環境8から呼び出されてUIイベントを受け取る。
Next, in
その後、ステップ108で、イベントハンドラ2は登録部3に登録情報が存在するか判定する。ここで、登録部3には、複数の登録情報を存在させるようにしてもよい。この場合には、イベントの種類や付随データなどから一時的状態マシン4が受け取るべきイベントを特定できるように登録情報を登録しておく。
Thereafter, in
ステップ108での判定の結果、登録情報が存在する場合はステップ109へ進み、登録情報が存在しない場合はステップ112へ進む。
As a result of the determination in
ステップ109では、登録情報を登録部3から取り出して登録部3から削除する。
In
次に、ステップ110で、登録部3から取り出した登録情報が有効状態にあるかどうか判定する。すなわち、登録情報が登録された時点では有効状態であっても、後の処理によって無効状態に変更されている場合があるので、取り出した登録情報が有効状態にあるかを判定する。この判定の結果、登録情報が有効状態であればステップ111へ進み、無効状態であればそのUIイベントは無視して、このフローを終了する。
Next, in
ステップ111では、登録情報に基づいて特定される一時的状態マシン4にUIイベントを配送する。このため、イベントハンドラ2は、有効状態の登録情報から一時的状態マシン4のインスタンスのアドレスと、イベントI/F関数5のアドレスとを割り出し、イベントとインスタンスのアドレスとを引数にセットし呼び出す。この呼び出しによって一時的状態マシン4はUIとのインタラクションを完了し、処理を続行する。
In
処理の続行の結果、処理が完了すると、一時的状態マシン4は自分自身を削除する。これにより、このフローは終了する。 When the process is completed as a result of the continuation of the process, the temporary state machine 4 deletes itself. As a result, this flow ends.
一方、ステップ108での判定の結果、登録情報が存在しない場合は、ステップ112で、発生したUIイベントをディフォルト状態マシン6へ配送する。つまり、イベントハンドラ2は、ディフォルト状態マシン6のイベントI/F関数7をコールし、ディフォルト状態マシン6がUIを使用していた場合は適切に処理し、予期していないイベントであった場合は無視して、このフローを終了する。
On the other hand, if the registration information does not exist as a result of the determination in
図2のフローチャートに従って、一時的状態マシン4はUIイベントを受け取るが、少なくともアプリケーション実行環境8がアプリケーション1を強制終了させる場合には、UIイベント待ちの状態にある一時的状態マシン4を強制削除する必要がある。
According to the flowchart of FIG. 2, the temporary state machine 4 receives the UI event, but at least when the
図3は、この場合の動作を示すフローチャートで、一時的状態マシン4がUIイベント待ち状態のときに、別のイベントが発生して、これを処理するディフォルト状態マシン6が一時的状態マシン4を強制削除する場合の動作を示したものである。
FIG. 3 is a flowchart showing the operation in this case. When the temporary state machine 4 is waiting for a UI event, another event occurs, and the
ディフォルト状態マシン6は、一時的状態マシン4を生成確保したものなので、その情報はイベントハンドラ2の登録部3に保持されている。したがって、先ず、ステップ120で、イベントハンドラ2の登録部3に一時的状態マシン4の登録情報が存在するか判定する。
Since the
その結果、登録情報が存在していると判定された場合は、ステップ121で、一時的状態マシン4の登録情報を無効状態にした後、ステップ122で一時的状態マシン4を強制削除し、登録情報が存在していないと判定された場合は、直接、ステップ122で一時的状態マシン4を強制削除して、このフローを終了する。
As a result, if it is determined that the registration information exists, the registration information of the temporary state machine 4 is disabled in
このように、イベントハンドラ2の登録部3における一時的状態マシン4の登録情報を無効状態としておけば、その後は、イベントハンドラ2がUIイベントを受け取ってもそれを配送せずに無視するようになる。したがって、本実施の形態のように、アプリケーション実行環境8とのインタラクションを許容する場合に、既に削除された一時的状態マシン4へのイベントの配送を防止することができ、不正な処理を避けることができる。
As described above, if the registration information of the temporary state machine 4 in the
(第2実施の形態)
図4乃至図8は本発明の第2実施の形態に係るイベント駆動型アプリケーションにおけるイベント配送方法を説明するもので、図4はイベント駆動型アプリケーションの概念的構成を示すブロック図、図5(a)乃至(d)は図4に示すスタック10における動作を説明する概念図、図6乃至図8は第2実施の形態の動作を示すフローチャートである。
(Second Embodiment)
FIGS. 4 to 8 illustrate an event delivery method in an event-driven application according to the second embodiment of the present invention. FIG. 4 is a block diagram showing a conceptual configuration of the event-driven application, and FIG. ) To (d) are conceptual diagrams for explaining the operation of the
図4に示すように、本実施の形態のアプリケーション1は、第1実施の形態において、イベントハンドラ2の登録部3にスタック10を付加するとともに、スクリプト実行コンテキスト11およびそのイベントI/F関数12を付加したもので、その他の構成は第1実施の形態と同様であるので、同一要素には同一参照符号を付して説明を省略する。
As shown in FIG. 4, the
スタック10は、複数の登録情報を貯めることができる記憶手段で、最後に入った情報を最初に取り出すLIFO方式のものである。すなわち、図5(a)に示すように、スタック10に第1の登録情報21が存在している状態で、図5(b)に示すように第2の登録情報22がプッシュされると、その第2の登録情報22は第1の登録情報21の上に積み上げられる。さらに、図5(c)に示すように、第3の登録情報23がプッシュされると、その第3の登録情報23は第2の登録情報22の上に積み上げられる。また、図5(c)に示すスタック10の状態から、登録情報をポップする(取り出す)と、図5(d)に示すように最後に入った第3の登録情報23が取り出されて、スタック10には第2の登録情報22と第1の登録情報21とが残ることになる。
The
本実施の形態では、アプリケーション実行環境8による複数のダイアログの表示をスタック10によって管理している。すなわち、最後に実行して表示したダイアログが画面に表示され、それから時間を遡る順番に重なってダイアログが存在し、画面に表示されているダイアログがユーザの操作によって閉じられると、次の最後に実行して表示したダイアログが表示される。
In the present embodiment, display of a plurality of dialogs by the
アプリケーション実行環境8は、ダイアログが閉じられるとUIイベントを発生させ、これがイベントハンドラ2に配送される。このUIイベントには宛先を特定するための情報は添付されていないので、本実施の形態ではスタック10を備えることによって、スタック10にある登録情報に基づいて適切な状態マシンへUIイベントを配送することを可能にしている。
When the dialog is closed, the
次に、図6乃至図8に示すフローチャートを参照して本実施の形態の動作を説明する。なお、図6乃至図8において、第1実施の形態と同様の処理には同じ符号を付してある。 Next, the operation of the present embodiment will be described with reference to the flowcharts shown in FIGS. 6 to 8, the same reference numerals are assigned to the same processes as those in the first embodiment.
先ず、図6において、ステップ141で、スクリプト実行コンテキスト11によりスクリプトの実行を開始する。スクリプト実行コンテキスト11とは、スクリプトを構文解析して生成した中間コードと、その中間コードの中のどの命令を現在実行しているかという情報と、スタックマシンである仮想マシンのスタック、などの情報を保持しているデータである。
First, in FIG. 6, script execution is started by the
次に、ステップ142で、スクリプトの実行によって所定の関数を呼ぶ。この関数はスクリプトで定義されたものではなく、本来の実行プログラムとして、C言語で記述されて機械語にコンパイルされた関数である。
Next, in
次に、ステップ101で、呼ばれた関数によって一時的状態マシン4をヒープに確保し、初期化する。つまり、呼ばれた関数は状態マシンとして実装されている。
Next, in
次に、ステップ143で、スクリプト実行コンテキスト11に含まれる仮想マシンのスタックから、関数の引数を取り出して、一時的状態マシン4へ渡す。
Next, in
次に、ステップ144で、スクリプト実行コンテキスト11を関数の完了待ち状態に遷移させる。すなわち、スクリプト実行コンテキスト11もまた状態マシンであって、イベントI/F関数12を通じてイベントを受け取って動作するイベント駆動型である。
Next, in
次に、ステップ102で、一時的状態マシン4を実行する。一時的状態マシン4は、通常、実行イベントが配送されることによって実行するが、ここでは専用の関数もしくはイベントI/F関数5をコールすることによって実行する。
Next, in
次に、ステップ145で、イベントハンドラ2の登録部3に一時的状態マシン4の第1実施の形態と同様の登録情報を有効状態で登録するとともに、その登録情報をスタック10にプッシュする。
Next, in step 145, registration information similar to that of the first embodiment of the temporary state machine 4 is registered in the
次に、ステップ104で、一時的状態マシン4によりUI上にダイアログを表示する。このダイアログの表示処理では、第1実施の形態と同様に、アプリケーション実行環境8が提供するAPIをコールして、画面上にダイアログを表示する。
Next, in
次に、ステップ105で、一時的状態マシン4をUIイベント待ち状態に遷移させて、イベントハンドラ2をリターンし、これによりCPUの実行権限をアプリケーション1から解放させる。
Next, in
その後、ステップ106で、ユーザによりキー操作されたらダイアログを閉じる。この際、アプリケーション実行環境8はダイアログを画面から消去し、ユーザの選択に応じた情報を伴ったUIイベントを発生させる。
Thereafter, in
次に、ステップ107で、イベントハンドラ2はアプリケーション実行環境8から呼び出されてUIイベントを受け取る。
Next, in
次に、ステップ146で、イベントハンドラ2はスタック10から登録情報をポップする。ここで、スタック10には、既に一時的状態マシン4が登録情報をプッシュしているが、その後にディフォルト状態マシン6がダイアログを表示してスタック10に登録情報をプッシュしている場合もある。ここでは、一時的状態マシン4がプッシュした登録情報が取り出されるものとして説明する。
Next, in
その後、図7のステップ147で、イベントハンドラ2は登録部3の中に登録情報が存在するか判定する。この判定処理は、第1実施の形態とは違って、UIイベント自体には宛先を特定する情報が含まれていないので、スタック10からポップされた情報によって登録情報の存在を判定する。
Thereafter, in
ステップ147での判定の結果、登録情報が存在する場合はステップ110へ進み、登録情報が存在しない場合はステップ112へ進む。
As a result of the determination in
ステップ110では、取り出した登録情報が有効状態にあるかどうか判定する。すなわち、登録情報が登録された時点では有効状態であっても、後の処理によって無効状態に変更されている場合があるので、取り出した登録情報が有効状態にあるかを判定する。この判定の結果、登録情報が有効状態であればステップ111へ進み、無効状態であればそのUIイベントは無視して、このフローを終了する。
In
ステップ147での判定の結果、登録情報が存在しない場合は、ステップ112で、発生したUIイベントをディフォルト状態マシン6へ配送する。つまり、イベントハンドラ2は、ディフォルト状態マシン6のイベントI/F関数7をコールし、ディフォルト状態マシン6がUIを使用する場合には、登録部3とスタック10とに登録をしておく必要があるが、ディフォルト状態マシン6にとって予期していないUIイベントであった場合は無視して、その後このフローを終了する。
If the registration information does not exist as a result of the determination in
ステップ110での判定の結果、取り出した登録情報が有効状態にあれば、ステップ111で、その登録情報に基づいて特定される一時的状態マシン4にUIイベントを配送する。このため、イベントハンドラ2は、有効状態の登録情報から一時的状態マシン4のインスタンスのアドレスと、イベントI/F関数5のアドレスとを割り出し、イベントとインスタンスのアドレスとを引数にセットし呼び出す。この呼び出しによって一時的状態マシン4はUIとのインタラクションを完了し、処理を続行する。処理の続行の結果、所定の関数の実行処理が完了すると、ステップ148へ進む。
If the extracted registration information is in the valid state as a result of the determination in
ステップ148では、一時的状態マシン4が求めた所定の関数の戻り値をスクリプト実行コンテキスト11のスタックに渡す。スタックマシンは、関数がリターンした際の戻り値をスタックに積んでおくので、これと同様の動作を行わせるためである。
In
次に、ステップ149で、スクリプト実行コンテキスト11に宛てて再開イベントを発生する。この再開イベントは、アプリケーション実行環境8のAPIをコールすることによって発生し、その発生したイベントはアプリケーション1用の待ち行列につながれる。
Next, in
次に、ステップ150で、一時的状態マシン4の処理を完了して、一時的状態マシン4を削除する。これにより、UIイベントを配送していたイベントハンドラ2はリターンし、CPUの実行権限はアプリケーション1から解放される。
Next, in
次に、ステップ151で、再開イベントによってアプリケーション実行環境8によりイベントハンドラ2を呼び出し、イベントハンドラ2によりそのイベントがスクリプト実行コンテキスト11宛であることを識別して、スクリプト実行コンテキスト11のイベントI/F関数12を呼び出す。これにより、スクリプト実行コンテキスト11は、待ち状態から実行状態に遷移してスクリプトの実行を再開する。
Next, in
その後、ステップ152で、スクリプトの実行が完了したら、スクリプト実行コンテキスト11をアイドル状態に遷移させて、このフローを終了する。
Thereafter, when the execution of the script is completed in
次に、図8を参照して、一時的状態マシン4を強制削除する場合の処理を説明する。先ず、ステップ160で、イベントハンドラ2の登録部3に一時的状態マシン4の登録情報が存在するか判定する。本実施の形態の場合には、登録情報がスタック10に貯められているので、スタック10の登録情報を検索する。なお、スタック10には、登録情報のインデクスを貯めておき、そのインデクスで指定される位置のテーブルに登録情報を格納しておくことも可能であり、その場合にはテーブルを検索する。
Next, with reference to FIG. 8, a process for forcibly deleting the temporary state machine 4 will be described. First, at
このステップ160での判定の結果、登録情報が存在している場合は、ステップ161で、存在していた一時的状態マシン4の登録情報を無効状態にした後、ステップ122で一時的状態マシン4を強制削除し、登録情報が存在していないと判定された場合は、直接、ステップ122で一時的状態マシン4を強制削除して、このフローを終了する。
If the registration information exists as a result of the determination in
すなわち、登録情報はスタック10に貯められているので、ステップ161では、その中の一時的状態マシン4に関するものを全て無効状態にする。なお、スタック10には、登録情報のインデクスを貯めておき、そのインデクスで指定される位置のテーブルに登録情報を格納しておく構成の場合には、テーブル内の登録情報を無効状態にするだけで、スタック10の中の一時的状態マシン4に関するもの全てを無効状態にすることができる。
That is, since the registration information is stored in the
このように、スタック10における一時的状態マシン4の登録情報を無効状態としても、スタック10には登録情報が残っているので、イベントハンドラ2がUIイベントを受け取った際、それを配送せずに無視しても、アプリケーション実行環境8が管理しているダイアログスタックの通りに、イベントを適切な宛先に配送することができる。
As described above, even if the registration information of the temporary state machine 4 in the
本実施の形態では、スタック10を設けることで、スタック10にある登録情報に基づいてUIイベントを適切な関数に配送することができ、また、スクリプト実行コンテキスト11を設けることで、スクリプト実行中にスクリプトがUIとインタラクションすることが可能となる。
In this embodiment, by providing the
(第3実施の形態)
図9および図10は本発明の第3実施の形態に係るデジタル放送受信装置を説明するもので、図9はデジタル放送受信装置の概略構成を示すブロック図であり、図10(a)乃至(c)は図9に示す表示部における画面表示例を示す図である。
(Third embodiment)
9 and 10 illustrate a digital broadcast receiving apparatus according to the third embodiment of the present invention. FIG. 9 is a block diagram showing a schematic configuration of the digital broadcast receiving apparatus, and FIGS. FIG. 10C is a diagram illustrating a screen display example in the display unit illustrated in FIG. 9.
図9に示すデジタル放送受信装置は、本発明によるイベント配送方法を実施するもので、全体の動作を制御するCPUを含む制御手段である制御部31、イベント駆動型アプリケーションを含む各種のプログラムを格納する記憶手段であるROM32、処理上のデータを保持するRAM33、ブックマーク保存用のフラッシュ(Flash)ROM34、表示手段である表示部35、デジタル放送受信手段であるデジタル放送受信部36、キー入力部37、オーディオ部40およびスピーカ38を有しており、制御部31、ROM32、RAM33、フラッシュROM34、表示部35およびデジタル放送受信部36はバス39に接続されている。
The digital broadcast receiving apparatus shown in FIG. 9 implements the event delivery method according to the present invention, and stores a
デジタル放送は、デジタル放送受信部36で受信・復調され、さらに映像情報および音声情報が復号されて、映像情報が表示部36に表示され、音声情報がオーディオ部40を経てスピーカ38から出力される。
The digital broadcast is received and demodulated by the digital
表示部36には、通常、図10(a)に示すように、映像領域41、BML領域42および右ソフトメニュー43が表示される。なお、右ソフトメニュー43には、メニュー呼び出し機能が登録されている。
As shown in FIG. 10A, a
図10(a)に示すように放送を受信して表示している間に、保存できるブックマークが存在すると、図10(b)に示すようにアイコン44が表示され、左ソフトメニュー45に保存機能が登録される。
If there is a bookmark that can be saved while receiving and displaying the broadcast as shown in FIG. 10A, an
ここで、ユーザが左ソフトメニューキーを押下すると、ブックマークの保存が開始される。この処理は、スクリプトによって実行され、この際に対応する状態マシンが一時的に確保されるとともに、イベントハンドラに状態マシンが登録されて、一時的状態マシンによる処理、すなわちブックマークの保存処理が実行される。 Here, when the user presses the left soft menu key, saving of the bookmark is started. This process is executed by a script, and the corresponding state machine is temporarily reserved, and the state machine is registered in the event handler, and the process by the temporary state machine, that is, the bookmark saving process is executed. The
このスクリプト実行中に、保存用のフラッシュROM34が一杯の場合には、図10(c)に示すようにダイアログ46が表示されて、例えば「メモリが一杯です 古いブックマークを消去しますか?」というメッセージが表示され、左ソフトメニュー47にはOK機能が、右ソフトメニュー48にはキャンセル機能が割り当てられている。ここで、ユーザが何れかのキーを操作すると、イベントハンドラに前記の状態マシンが登録されていれば、そのUIイベントが当該状態マシンに配送されてダイアログ46が閉じ、図10(a)の状態に戻る。
If the saving
このように、本実施の形態によれば、デジタル放送の受信において擬似オブジェクトがUI上にダイアログを出し、ユーザに選択させることができるので、使い勝手を向上することができる。 As described above, according to the present embodiment, the pseudo object can display a dialog on the UI and receive the user's selection when receiving the digital broadcast, so that the usability can be improved.
なお、本発明は、上記実施の形態に限定されるものではなく、幾多の変更または変形が可能である。例えば、本発明によるイベント配送方法は、デジタル放送の受信装置に限らず、UIを有するスクリプトを実行するイベント駆動型アプリケーションを採用する各種の機器に広く適用することができる。 In addition, this invention is not limited to the said embodiment, Many change or deformation | transformation is possible. For example, the event delivery method according to the present invention can be widely applied not only to a digital broadcast receiving apparatus but also to various devices that employ an event-driven application that executes a script having a UI.
1 イベント駆動型アプリケーション
2 イベントハンドラ
3 登録部
4 一時的状態マシン
5 イベントI/F関数
6 ディフォルト状態マシン
7 イベントI/F関数
8 アプリケーション実行環境
9 OS
10 スタック
11 スクリプト実行コンテキスト
12 イベントI/F関数
31 制御部
32 ROM
33 RAM
34 フラッシュROM
35 表示部
36 デジタル放送受信部
37 キー入力部
38 スピーカ
39 バス
40 オーディオ部
1 Event Driven
10
33 RAM
34 Flash ROM
35
Claims (5)
前記スクリプトが実行される際に、対応する状態マシンを一時的に確保するとともに、イベントハンドラに前記状態マシンを登録し、
所定のイベントを受けた際に、前記イベントハンドラに前記状態マシンが登録されていれば、当該状態マシンへ前記イベントを配送することを特徴とするイベント駆動型アプリケーションにおけるイベント配送方法。 In delivering an event in an event-driven application that executes a script with a user interface,
When the script is executed, a corresponding state machine is temporarily reserved, and the state machine is registered in an event handler.
An event delivery method in an event-driven application, wherein, when a predetermined event is received, if the state machine is registered in the event handler, the event is delivered to the state machine.
前記イベント駆動型アプリケーションを格納する記憶手段と、
デジタル放送受信手段と、
少なくとも前記デジタル放送受信手段で受信した情報を表示する表示手段と、
前記表示手段における表示情報に応じて、前記スクリプトが実行される際に、対応する状態マシンを一時的に確保するとともに、イベントハンドラに前記状態マシンを登録し、所定のイベントを受けた際に、前記イベントハンドラに前記状態マシンが登録されていれば、当該状態マシンへ前記イベントを配送するように制御する制御手段と、
を有することを特徴とするデジタル放送受信装置。 A digital broadcast receiving apparatus for executing an event delivery method in an event-driven application according to any one of claims 1 to 4, wherein a script having a user interface is executed.
Storage means for storing the event-driven application;
Digital broadcast receiving means;
Display means for displaying at least information received by the digital broadcast receiving means;
When the script is executed according to the display information in the display means, the corresponding state machine is temporarily secured, the state machine is registered in an event handler, and when a predetermined event is received, If the state machine is registered in the event handler, control means for controlling to deliver the event to the state machine;
A digital broadcast receiver characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005343574A JP4864432B2 (en) | 2005-11-29 | 2005-11-29 | Event delivery method in event-driven applications |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005343574A JP4864432B2 (en) | 2005-11-29 | 2005-11-29 | Event delivery method in event-driven applications |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007148874A true JP2007148874A (en) | 2007-06-14 |
JP4864432B2 JP4864432B2 (en) | 2012-02-01 |
Family
ID=38210210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005343574A Expired - Fee Related JP4864432B2 (en) | 2005-11-29 | 2005-11-29 | Event delivery method in event-driven applications |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4864432B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230096108A1 (en) * | 2021-09-30 | 2023-03-30 | Acronis International Gmbh | Behavior analysis based on finite-state machine for malware detection |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06110670A (en) * | 1992-04-22 | 1994-04-22 | Nec Corp | Graphic user interface function customizing system |
JP2001060155A (en) * | 1999-08-20 | 2001-03-06 | Fujitsu Ltd | Message processor |
US20050140694A1 (en) * | 2003-10-23 | 2005-06-30 | Sriram Subramanian | Media Integration Layer |
-
2005
- 2005-11-29 JP JP2005343574A patent/JP4864432B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06110670A (en) * | 1992-04-22 | 1994-04-22 | Nec Corp | Graphic user interface function customizing system |
JP2001060155A (en) * | 1999-08-20 | 2001-03-06 | Fujitsu Ltd | Message processor |
US20050140694A1 (en) * | 2003-10-23 | 2005-06-30 | Sriram Subramanian | Media Integration Layer |
Also Published As
Publication number | Publication date |
---|---|
JP4864432B2 (en) | 2012-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101238550B1 (en) | Method and computer-readable medium for commanding | |
US8875098B2 (en) | Workflow engine for execution of web mashups | |
US7216351B1 (en) | Systems and methods for synchronizing multi-modal interactions | |
US7996826B2 (en) | Method of executing virtual machine application program and digital broadcast receiver using the same | |
US8789068B2 (en) | Method and system for changing execution environments during application execution | |
US20080127060A1 (en) | Dynamic mating of a modified user interface with pre-modified user interface code library | |
US20060225107A1 (en) | System for running applications in a resource-constrained set-top box environment | |
EP1486884A2 (en) | Weg page rendering mechanism using external programmatic themes | |
KR20080001706A (en) | Method and apparatus for application window grouping and management | |
JP2008512012A (en) | Method and system for providing interactive services on digital television | |
US20090187886A1 (en) | Declartive commands using workflows | |
US7631272B2 (en) | Focus scope | |
CN110765746B (en) | Form automatic generation method and system based on event agent | |
KR102337962B1 (en) | System and method for executing application based on microservice architecture and computer program for the same | |
KR100870200B1 (en) | Digital broadcast receiving apparutus using integrated middleware | |
US7734958B1 (en) | Method and apparatus for a programming language having fully undoable, timed reactive instructions | |
JPWO2004034698A1 (en) | Information processing device | |
US20030237052A1 (en) | Method and an apparatus for styling a web service | |
JP4864432B2 (en) | Event delivery method in event-driven applications | |
JP3538292B2 (en) | Runtime program translation method | |
KR102337961B1 (en) | System for providing development framework which support both monolithic architecture and microservice architecture, method for developing application using the same and computer program for the same | |
JP4925514B2 (en) | Program execution control method, program, execution control apparatus, and recording medium by internal / external event driven system | |
JP5421914B2 (en) | Coroutine interface for user customization of SIP and SDP protocols | |
US7421713B2 (en) | Safe service extension platform | |
KR100723913B1 (en) | Structured data broadcasting application, recording medium thereof, and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080902 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110513 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110517 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110719 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20110719 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110816 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111017 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111108 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111109 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141118 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4864432 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |