JP2015026151A - Information processing device, information processing method, data structure, and information processing program - Google Patents
Information processing device, information processing method, data structure, and information processing program Download PDFInfo
- Publication number
- JP2015026151A JP2015026151A JP2013154215A JP2013154215A JP2015026151A JP 2015026151 A JP2015026151 A JP 2015026151A JP 2013154215 A JP2013154215 A JP 2013154215A JP 2013154215 A JP2013154215 A JP 2013154215A JP 2015026151 A JP2015026151 A JP 2015026151A
- Authority
- JP
- Japan
- Prior art keywords
- execution
- script
- information processing
- return value
- executed
- 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
- Information Transfer Between Computers (AREA)
Abstract
Description
本発明は、非同期的な処理を扱う技術に関する。 The present invention relates to a technique for handling asynchronous processing.
Webコンテンツをよりダイナミックにするために、WebコンテンツにJavaScript(登録商標)と呼ばれるスクリプトを記述することが知られている。JavaScriptでは、状態に応じた動作を記述するために、オブジェクトのメソッドを呼び出したり、オブジェクトのプロパティ値を取得するなど、状態を示す値を取得することが可能である。例えば、動画を再生するためのエレメントを参照するオブジェクトをvideoという変数に割り当て、そのエレメントが特定タイプの動画再生が可能かどうかを確認するメソッド(canPlayType)を呼び出したり、現在の再生位置のプロパティ値(currentTime)を取得することができる。図7,8にJavaScriptの例を示す。図7の例では、videoエレメントのcanPlayTypeメソッドの戻り値を変数tyに代入している。エレメントから得られる値は、図8の例のcurrentTimeプロパティのように、変数に代入せずに条件文中に記載したり、加減乗除などの式の一部として使用することも可能である。 In order to make Web content more dynamic, it is known to write a script called JavaScript (registered trademark) in Web content. In JavaScript, in order to describe the operation according to the state, it is possible to obtain a value indicating the state, such as calling an object method or obtaining a property value of the object. For example, an object that refers to an element for playing a movie is assigned to a variable called video, and a method (canPlayType) for checking whether or not the element can play a particular type of movie, or a property value of the current playback position (CurrentTime) can be acquired. 7 and 8 show an example of JavaScript. In the example of FIG. 7, the return value of the canPlayType method of the video element is assigned to the variable ty. A value obtained from an element can be described in a conditional statement without being assigned to a variable, or can be used as a part of an expression such as addition, subtraction, multiplication, and division as in the currentTime property in the example of FIG.
非特許文献1では、Webコンテンツの一部を複数のデバイスのブラウザに表示させることが提案されている。非特許文献1では、Webサーバとデバイスの間に中間ブラウザを配置し、中間ブラウザがデバイス間の通信やJavaScriptを実行することで、複数のデバイスを連携させている。Webコンテンツの一部を複数のデバイスのブラウザに表示させることで、例えば、Webコンテンツ中に動画を表示する部分と動画を操作する部分が含まれる場合、動画の表示をテレビのブラウザで行い、動画の操作をスマートフォンのブラウザで行うことが可能となる。この場合、スマートフォン上の操作が中間ブラウザに送られて、中間ブラウザがテレビにその操作内容に対応する動作を実行させる。
Non-Patent
非特許文献1の技術では、中間ブラウザが異なるデバイス上のブラウザ(以下、「リモートブラウザ」という)に展開されているエレメントの状態を取得するためには、そのデバイスとの通信が不可欠である。具体的には、図7で示したJavaScriptは中間ブラウザで実行されるが、videoエレメントがリモートブラウザに展開されている場合は、canPlayTypeメソッドを起動するのはリモートブラウザとなる。そこで、リモートブラウザ上でcanPlayTypeメソッドを起動するための通信電文REQ1と、そのメソッドの返却値を通知するための通信電文RES1を予め決めておき、中間ブラウザでcanPlayTypeメソッドが実行されるときに、中間ブラウザからリモートブラウザへREQ1を送信し、リモートブラウザから中間ブラウザへ返信されたRES1から返却値を取り出し、canPlayTypeメソッドの返却値とする。同様に、図8の例では、currentTimeプロパティを参照するための通信電文REQ2と、currentTimeプロパティの値を通知するための通信電文RES2を予め決めておき、中間ブラウザでcurrentTimeプロパティが参照されたときに、中間ブラウザからリモートブラウザへREQ2を送信し、リモートブラウザから中間ブラウザへ返信されたRES2から返却値を取り出し、currentTimeプロパティの値とする。
In the technique of Non-Patent
非特許文献1では、中間ブラウザとリモートブラウザとの間の通信にWebSocketを用いている。WebSocket通信をJavaScriptにより処理するためには、通信電文を受信した際に呼び出されるコールバック関数を事前に定義する必要がある。そのため、リモートブラウザで展開されたエレメントのメソッドの起動、プロパティ値の取得をする場合、返却値を取り出すコールバック関数を記述する必要がある。具体的には、図7の3行目の変数tyはリモートブラウザからRES1を受信したタイミングで代入されるので、図7の4行目の変数tyの値を出力する部分は、リモートブラウザからRES1を受信したタイミングで実行する必要がある。そのため、図7の例は、図9に示すように、リモートブラウザからRES1を受信したときに実行されるコールバック関数を分けて記述する必要がある。なお、図9の3行目のrequest_canPlayTypeは、中間ブラウザ上でcanPlayTypeメソッドを起動する代わりに、リモートブラウザへREQ1を送信し、かつ、REQ1受信時に、第2引数で指定した関数callback1を呼び出すよう指定したメソッドである。さらに、図8の例は、flagの値に応じて8行目のconsole.log(flag)を実行するタイミングが変わる。具体的には、flagの値が1でcurrentTimeプロパティを参照する場合はリモートブラウザからRES2を受信してcurrentTimeプロパティの値を取得したときがconsole.log(flag)を実行するタイミングとなり、flagの値が1以外でcurrentTimeプロパティを参照しない場合はsapmle2を呼び出したときがconsole.log(flag)を実行するタイミングとなる。そのため、図8のJavaScriptを中間ブラウザに対応するように単純に書き換えることさえも困難であるという問題があった。
In Non-Patent
また、従来のWebコンテンツは1つのブラウザで閲覧されることを前提としており、エレメントのプロパティの値を参照する処理などを非同期的に処理する必要はなかった。非特許文献1の技術を用いてWebコンテンツをリモートブラウザに表示させる場合、JavaScriptが中間ブラウザで実行されることを考慮し、リモートブラウザで非同期的に行われる処理に対応させてJavaScriptを記述しなければならないという問題があった。
In addition, it is assumed that conventional Web content is browsed by a single browser, and there is no need to asynchronously process a process for referring to an element property value. When displaying Web content on a remote browser using the technology of Non-Patent
本発明は、上記に鑑みてなされたものであり、非同期的に行われる処理を意識させずにプログラムの記述を可能とすることを目的とする。 The present invention has been made in view of the above, and an object of the present invention is to make it possible to describe a program without being aware of processing performed asynchronously.
第1の本発明に係る情報処理装置は、非同期的に行われる処理を含むスクリプトを実行する情報処理装置であって、前記スクリプトを実行する実行手段と、前記実行手段が実行する処理が他の装置において実行される処理の返却値を用いる場合、IDを生成して当該IDを含む通信電文を前記他の装置へ送信して処理を行わせるとともに、前記IDをキーとして前記スクリプトの実行を再開するのに必要なデータをテーブルに登録した上で前記実行手段に前記スクリプトの実行を中断させる実行中断手段と、前記他の装置から前記IDと前記返却値を含む通信電文を受信したときに、当該通信電文から前記IDと前記返却値を取り出し、前記IDをキーとして前記テーブルから前記スクリプトの実行を再開するのに必要なデータを取得し、前記実行手段に前記返却値を渡して前記スクリプトの実行を再開させる実行再開手段と、を有することを特徴とする。 An information processing apparatus according to a first aspect of the present invention is an information processing apparatus that executes a script including a process that is performed asynchronously. The execution unit that executes the script and the process that the execution unit executes are different from each other. When using the return value of the process executed in the apparatus, an ID is generated, a communication message including the ID is transmitted to the other apparatus to perform the process, and the execution of the script is resumed using the ID as a key. When receiving the communication message including the ID and the return value from the other device, and the execution interruption means for interrupting the execution of the script by the execution means after registering the data necessary to do The ID and the return value are extracted from the communication message, and the data necessary to resume execution of the script is acquired from the table using the ID as a key. Passing said return value to the execution unit and having a an execution resumption means for resuming the execution of the script.
上記情報処理装置において、前記他の装置において実行される処理は、前記スクリプトを実行する実行手段によってアクセスされるエレメントが備えたメソッドが前記他の装置に処理を行わせるものであって、当該メソッド内で前記スクリプトの実行を中断させることを特徴とする。 In the information processing apparatus, the process executed in the other apparatus is such that a method included in an element accessed by an execution unit that executes the script causes the other apparatus to perform the process. The execution of the script is interrupted.
第2の本発明に係る情報処理方法は、非同期的に行われる処理を含むスクリプトを実行する情報処理装置による情報処理方法であって、前記スクリプトを実行するステップと、前記ステップにおいて実行する処理が他の装置において実行される処理の返却値を用いる場合、IDを生成して当該IDを含む通信電文を前記他の装置へ送信して処理を行わせるとともに、前記IDをキーとして前記スクリプトの実行を再開するのに必要なデータをテーブルに登録した上で前記スクリプトの実行を中断させるステップと、前記他の装置から前記IDと前記返却値を含む通信電文を受信したときに、当該通信電文から前記IDと前記返却値を取り出し、前記IDをキーとして前記テーブルから前記スクリプトの実行を再開するのに必要なデータを取得し、前記返却値を渡して前記スクリプトの実行を再開させるステップと、を有することを特徴とする。 An information processing method according to a second aspect of the present invention is an information processing method by an information processing apparatus that executes a script including processing that is performed asynchronously, and includes a step of executing the script and a processing executed in the step When using a return value of processing executed in another device, an ID is generated and a communication message including the ID is transmitted to the other device to perform processing, and the script is executed using the ID as a key. When the communication message including the ID and the return value is received from the other device, the step of interrupting the execution of the script after registering the data necessary for restarting the table in the table, from the communication message The ID and the return value are extracted, and the data necessary to resume execution of the script is acquired from the table using the ID as a key. Characterized by having the steps of: resuming execution of the script by passing the return value.
上記情報処理方法において、前記他の装置において実行される処理は、前記スクリプトを実行するステップにおいてアクセスされるエレメントが備えたメソッドが前記他の装置に処理を行わせるものであって、当該メソッド内で前記スクリプトの実行を中断させることを特徴とする。 In the information processing method, the processing executed in the other device is a method provided in an element accessed in the step of executing the script, causing the other device to perform processing. And the execution of the script is interrupted.
第3の本発明に係るデータ構造は、イベント発生時に明示的な中断および再開ができる状態で実行されるスクリプトによってアクセスされるデータ構造であって、スクリプトの実行を中断する処理を行うメソッドを備えたエレメントと、前記メソッドが呼び出される度に生成されるIDをキーとして前記スクリプトの実行を再開するのに必要なデータを格納するテーブルと、を有することを特徴とする。 A data structure according to a third aspect of the present invention is a data structure that is accessed by a script that is executed in a state that can be explicitly interrupted and resumed when an event occurs, and includes a method that performs processing for interrupting execution of the script. And a table for storing data necessary for resuming execution of the script with an ID generated each time the method is called as a key.
第4の本発明に係る情報処理プログラムは、上記情報処理装置の各手段としてコンピュータを機能させることを特徴とする。 An information processing program according to a fourth aspect of the present invention causes a computer to function as each unit of the information processing apparatus.
本発明によれば、非同期的に行われる処理を意識させずにプログラムの記述を可能とすることができる。 According to the present invention, it is possible to describe a program without being aware of processing performed asynchronously.
以下、本発明の実施の形態について図面を用いて説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
図1は、本実施の形態におけるコンテンツ表示装置の構成を示す機能ブロック図である。本実施の形態におけるコンテンツ表示装置1は、WEBコンテンツを取得し、取得したWEBコンテンツを分割してリモートブラウザ2A,2Bそれぞれに送信し、リモートブラウザ2A,2BそれぞれにWEBコンテンツの一部を表示させる。例えば、動画を表示するWEBコンテンツを受信し、テレビなどのリモートブラウザ2Aに動画を表示させ、スマートフォンなどのリモートブラウザ2Bに操作ボタンを表示させることで、ユーザは、手元のスマートフォンで操作をしながらテレビで動画を見ることが可能となる。なお、図1では、一例として2つのリモートブラウザ2A,2Bを示したが、これに限るものではない。
FIG. 1 is a functional block diagram showing the configuration of the content display device in the present embodiment. The
図1に示すコンテンツ表示装置1は、WEBコンテンツ評価部11、DOMデータ記憶部12、DOMデータ送信部13、実行部14、DOMアクセス部15、ブラウザ通信部16、およびイベント受信部17を備える。コンテンツ表示装置1が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムはコンテンツ表示装置1が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。以下、コンテンツ表示装置1の各部について説明する。
The
WEBコンテンツ評価部11は、Webサーバ(図示せず)などからWEBコンテンツを取得し、WEBコンテンツに含まれる、HTMLデータ、CSS(Cascading Style Sheet)データをDOMデータ記憶部12へ送り、JavaScriptコードを実行部14に送る。
The WEB
DOMデータ記憶部12は、HTMLデータを解析して、ツリー状のデータ構造であるDOM(Document Object Model)に展開して記憶する。HTMLデータの1つのタグがDOMの1つのエレメントを構成し、タグで囲まれた部分が子エレメントとなる。また、DOMデータ記憶部12は、DOMのエレメントを表示する態様を指定するCSSデータも記憶する。
The DOM
DOMデータ送信部13は、DOMデータ記憶部12に記憶されたDOMからリモートブラウザ2A,2Bそれぞれに表示させるWEBコンテンツの一部に対応する部分木を判定し、リモートブラウザ2A,2Bそれぞれに対応する部分木を送信する。リモートブラウザ2A,2Bへ送信する部分木を判定する方法としては、例えばHTMLデータ中にdeviceという属性を設けておき、device属性の値に基いて判定する。図2に、DOMデータ記憶部12に記憶されるDOMの例を示す。同図に示すDOMには、device属性に“TV”と“phone”が設定されたエレメントが存在する。device属性に“TV”が設定されたエレメントをルートとする部分木Aをリモートブラウザ2Aに送信し、device属性に“phone”が設定されたエレメントをルートとする部分木Bをリモートブラウザ2Bに送信する。
The DOM
DOMデータ記憶部12、DOMデータ送信部13を構成する方法としては、サーバサイド上のJavaScript実行環境として知られているnode.jsというプラットフォームを用いることができる。node.jsには、JavaScriptでDOMを操作するJSDOMと呼ばれるソフトウェアライブラリも知られている。
As a method of configuring the DOM
実行部14は、Webコンテンツに含まれるJavaScriptコードを実行する。DOMのエレメントでイベントが発生した際には対応するイベントリスナを実行する。イベントリスナは、イベントが発生したときに実行されるJavaScriptで記載されたプログラムである。
The
DOMアクセス部15は、実行部14がDOMのエレメントにアクセスする際に、アクセス対象のDOM(部分木)を保持するリモートブラウザ2A,2Bに通知してリモートブラウザ2A,2Bに自身が保持するDOMへアクセスさせて返却値を受け取る。なお、エレメントのメソッドを呼び出して返却値がある場合や、エレメントのプロパティを参照する場合など、リモートブラウザ2A,2Bから返却値を受信する場合は、リモートブラウザ2A,2Bに自身が保持するDOMに対するアクセスを実行させる通信電文を送信した後、実行部14にJavaScriptの実行を中断させて、リモートブラウザ2A,2Bから返却値を受け取った後で、JavaScriptの実行を再開させる。JavaScriptの実行を中断して再開する処理の詳細については後述する。
When the
ブラウザ通信部16は、リモートブラウザ2A,2Bとの間で通信を行い、変更するDOMデータ、メソッドの実行を要求する通信電文などを送信し、メソッドの返却値やプロパティの値を含む通信電文などを受信する。ブラウザ通信部16は、例えばWebSocketサーバとして構築しておき、リモートブラウザ2A,2Bとの間でWebSocketコネクションを確立してデータを送受信する。
The
イベント受信部17は、リモートブラウザ2A,2B上で発生した、ボタンクリック等のイベント通知を受信し、DOMデータ記憶部12に記憶したDOMの対応するエレメントで擬似的に同種のイベントを発生させて、DOMデータ記憶部12に記憶したDOMのエレメントに登録されているイベントリスナを実行部14に実行させる。リモートブラウザ2A,2Bが保持するDOMのエレメントに、イベントが発生した時にイベント通知をコンテンツ表示装置1へ送信する処理をイベントリスナとして登録しておくことで、リモートブラウザ2A,2Bで発生したイベントをコンテンツ表示装置1で処理できる。
The
次に、JavaScriptの実行を中断して再開する処理について説明する。 Next, processing for interrupting and resuming execution of JavaScript will be described.
明示的にプログラムを中断、再開する技術としてFiberと呼ばれる技術がある。Fiberにおいては、実行中のプログラムが、明示的な中断要求をすることで、プログラム実行継続に必要なデータを一時記憶域に保存してから実行を停止する。停止したプログラムは、明示的な再開要求をすることで、一時記憶域からデータを復元して実行を再開する。本実施の形態では、Fiberをnode.js上で実装したnode−fibersと呼ばれるライブラリを用いた。node−fibersでは、中断する可能性のあるプログラムをnode−fibersにおけるFiberオブジェクト内で実行し、プログラムの中でFiber.yield関数を呼び出すことでプログラムの実行が中断される。また、その中断状態を保持しているFiberオブジェクトに対してrunメソッドを呼び出すことで、中断しているプログラムが再開される。 As a technique for explicitly interrupting and resuming a program, there is a technique called Fiber. In Fiber, when a program being executed makes an explicit interruption request, data necessary for continuing program execution is saved in a temporary storage area, and then execution is stopped. The stopped program makes an explicit restart request to restore data from the temporary storage area and resume execution. In this embodiment, Fiber is set to node. A library called node-fibers implemented on js was used. In node-fibers, a program that may be interrupted is executed in a Fiber object in node-fibers, and Fiber. Execution of the program is interrupted by calling the yield function. In addition, the suspended program is resumed by calling the run method for the Fiber object holding the suspended state.
実行部14においてJavaScriptの実行を明示的に中断、再開できるように、イベントリスナを起動するためのdispatchEvent関数を図3のように書き換えて、イベントが発生したときに、イベントリスナがFiberオブジェクト内で実行されるようにする。これにより、イベントリスナはFiberオブジェクト内で実行されて、プログラムの実行を明示的に中断、再開することが可能となる。
In the
図4は、JavaScriptの実行を中断して再開する処理の流れを示すシーケンス図である。以下、実装例を参照しつつ、JavaScriptの実行を中断して再開する処理について説明する。 FIG. 4 is a sequence diagram showing a flow of processing for interrupting and resuming execution of JavaScript. Hereinafter, a process for interrupting and restarting the execution of JavaScript will be described with reference to an implementation example.
実行部14によりリモートブラウザ2A,2Bにおいて非同期的に行われるメソッドが呼び出されると、実行を再開するFiberオブジェクトを識別するために用いるIDを生成し(ステップS11)、生成したIDを埋め込んだ要求電文をリモートブラウザ2A,2Bへ送信し(ステップS12)、IDをキーとしてテーブルにFiberオブジェクトを登録した後(ステップS13)、実行部14にJavaScriptの実行を中断させる(ステップS14)。ここまでの処理により、リモートブラウザ2A,2Bに要求電文が送信され、実行部14で実行されているJavaScriptの処理が中断される。リモートブラウザ2A,2Bにおいて非同期的に行われるメソッドについては、リモートブラウザ2A,2Bに処理を要求した後でプログラムの実行を中断するようにDOMアクセス部15を実装する。非同期的に行われるメソッドの実装例を図5に示す。図5に示す実装例では、2行目でIDを生成し、3行目でIDとともに処理内容をリモートブラウザ2A,2Bに送信し、4行目でIDにFiberオブジェクトを関連つけて記憶している。3行目のREQ1は、リモートブラウザ2A,2Bに処理させる内容を示す値である。リモートブラウザ2A,2Bに処理を要求した後は、5行目でFiber.yeild関数を呼び出して該当メソッドを呼び出したJavaScriptの実行を中断する。この時点で、実行部14はJavaScriptの実行を中止し、イベント発生を待つ処理など他の処理を行う。
When a method executed asynchronously in the
リモートブラウザ2A,2Bは、要求電文を受信すると(ステップS21)、要求電文で指定された処理を実行し(ステップS22)、要求とともに受信したIDと得られた返却値をコンテンツ表示装置1へ送信する(ステップS23)。図5に示す実装例では、REQ1に対応する通信電文RES1にIDと返却値を埋め込んで送信する。
When the
コンテンツ表示装置1は、リモートブラウザ2A,2BからIDと返却値を受信すると(ステップS31)、IDをキーとしてテーブルからFiberオブジェクトを取得し(ステップS32)、返却値を引数に入れて特定したFiberオブジェクトのrunメソッドを呼び出すことで中断しているJavaScriptの実行を再開させる(ステップS33)。JavaScriptの実行が再開されると、図5の実装例の5行目の変数retに返却値が代入されて、req_canPlayType関数からの返却値として呼び出し元に渡される。図5に示したreq_canPlayType関数をオリジナルのcanPlayTypeに置き換えておけば、WEBコンテンツに含まれるJavaScriptコードでは、リモートブラウザ2A,2Bの処理を待つ記載をする必要がなくなり、canPlayType関数を記載しておくだけで、リモートブラウザ2A,2Bに処理を実行させて返却値を受信する処理が実行される。
When the
video.currentTimeなどリモートブラウザ2A,2Bが保持するエレメントのプロパティ値へのアクセスについては、JavaScriptのGetter関数を定義する方法を用いる。図6に、プロパティの値を得るGetter関数の例を示す。図6の実装例の処理の内容は、図5の実装例の処理の内容とほぼ同じであり、リモートブラウザ2A,2BへREQ2を送信してプロパティの値を問い合わせた後、リモートブラウザ2A,2BからRES2を受信してプロパティの値が得られるまでJavaScriptの実行を中断する。
video. For accessing property values of elements held by the
なお、DOM APIとして規定されている値を返却するメソッドやプロパティ値の参照すべてに対して上述のプログラムの実行を中断・再開する処理が必要というわけではない。例えば、エレメントには、そのIDを参照するための“id”というプロパティがあるが、このidプロパティの値は、DOMデータ記憶部12とリモートブラウザ2A,2Bによって差異が生じるものではないため、DOMデータ記憶部12上で参照すればよい。DOMデータ記憶部12上を参照するときは遅延が生じないので、値が得られるまでJavaScriptの実行を中断する処理を行わなくてもよい。したがって、DOMアクセス部15では、各DOM APIに対して、リモートブラウザ2A,2B上でのメソッドの起動、プロパティ値の参照が必要となるものに対してのみ、上述のreq_XXXXX、get_XXXXXを実装すればよい。
Note that it is not necessary to suspend / restart the above-described program execution for all methods or property value references that return values defined as DOM APIs. For example, the element has a property “id” for referring to the ID, but the value of this id property does not cause a difference between the DOM
以上説明したように、本実施の形態によれば、リモートブラウザ2A,2Bから送信される返却値を待つ必要がある場合に、実行部14によるJavaScriptの実行を中断させて、リモートブラウザ2A,2Bから返却値が得られたときに実行を再開させることで、コンテンツ表示装置1とリモートブラウザ2A,2B間の非同期処理について意識することなくWEBコンテンツのJavaScriptコードを記述することができる。このことにより、WEBコンテンツの一部をリモートブラウザに送信する場合でも、WEBコンテンツを1つのブラウザで表示させるときと同様の同期処理の態様でWEBコンテンツに含まれるJavaScriptコードを記述することができる。
As described above, according to the present embodiment, when it is necessary to wait for a return value transmitted from the
1…コンテンツ表示装置
11…WEBコンテンツ評価部
12…DOMデータ記憶部
13…DOMデータ送信部
14…実行部
15…DOMアクセス部
16…ブラウザ通信部
17…イベント受信部
2A,2B…リモートブラウザ
DESCRIPTION OF
Claims (6)
前記スクリプトを実行する実行手段と、
前記実行手段が実行する処理が他の装置において実行される処理の返却値を用いる場合、IDを生成して当該IDを含む通信電文を前記他の装置へ送信して処理を行わせるとともに、前記IDをキーとして前記スクリプトの実行を再開するのに必要なデータをテーブルに登録した上で前記実行手段に前記スクリプトの実行を中断させる実行中断手段と、
前記他の装置から前記IDと前記返却値を含む通信電文を受信したときに、当該通信電文から前記IDと前記返却値を取り出し、前記IDをキーとして前記テーブルから前記スクリプトの実行を再開するのに必要なデータを取得し、前記実行手段に前記返却値を渡して前記スクリプトの実行を再開させる実行再開手段と、
を有することを特徴とする情報処理装置。 An information processing apparatus that executes a script including processing performed asynchronously,
Execution means for executing the script;
When the process executed by the execution unit uses a return value of a process executed in another device, an ID is generated and a communication message including the ID is transmitted to the other device to perform the process. Execution interrupting means for causing the execution means to interrupt the execution of the script after registering data necessary for resuming the execution of the script with the ID as a key;
When the communication message including the ID and the return value is received from the other device, the ID and the return value are extracted from the communication message, and the execution of the script is resumed from the table using the ID as a key. Execution resumption means for obtaining data necessary for the execution, passing the return value to the execution means, and resuming execution of the script;
An information processing apparatus comprising:
前記スクリプトを実行するステップと、
前記ステップにおいて実行する処理が他の装置において実行される処理の返却値を用いる場合、IDを生成して当該IDを含む通信電文を前記他の装置へ送信して処理を行わせるとともに、前記IDをキーとして前記スクリプトの実行を再開するのに必要なデータをテーブルに登録した上で前記スクリプトの実行を中断させるステップと、
前記他の装置から前記IDと前記返却値を含む通信電文を受信したときに、当該通信電文から前記IDと前記返却値を取り出し、前記IDをキーとして前記テーブルから前記スクリプトの実行を再開するのに必要なデータを取得し、前記返却値を渡して前記スクリプトの実行を再開させるステップと、
を有することを特徴とする情報処理方法。 An information processing method by an information processing apparatus that executes a script including processing performed asynchronously,
Executing the script;
When the process executed in the step uses a return value of the process executed in another device, an ID is generated and a communication message including the ID is transmitted to the other device to perform the process. Suspending the execution of the script after registering the data necessary for resuming the execution of the script in the table using as a key;
When the communication message including the ID and the return value is received from the other device, the ID and the return value are extracted from the communication message, and the execution of the script is resumed from the table using the ID as a key. Obtaining necessary data, passing the return value and resuming execution of the script;
An information processing method characterized by comprising:
スクリプトの実行を中断する処理を行うメソッドを備えたエレメントと、
前記メソッドが呼び出される度に生成されるIDをキーとして前記スクリプトの実行を再開するのに必要なデータを格納するテーブルと、
を有することを特徴とするデータ構造。 A data structure accessed by a script that is executed in a state that can be explicitly suspended and resumed when an event occurs,
An element with a method that performs processing to interrupt execution of the script;
A table for storing data necessary to resume execution of the script with an ID generated every time the method is called as a key;
A data structure characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013154215A JP6086490B2 (en) | 2013-07-25 | 2013-07-25 | Information processing apparatus, information processing method, and information processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013154215A JP6086490B2 (en) | 2013-07-25 | 2013-07-25 | Information processing apparatus, information processing method, and information processing program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015026151A true JP2015026151A (en) | 2015-02-05 |
JP6086490B2 JP6086490B2 (en) | 2017-03-01 |
Family
ID=52490787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013154215A Active JP6086490B2 (en) | 2013-07-25 | 2013-07-25 | Information processing apparatus, information processing method, and information processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6086490B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669817A (en) * | 2018-12-19 | 2019-04-23 | 深圳市活力天汇科技股份有限公司 | A kind of Node.js Server Restart method based on PM2 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011511974A (en) * | 2008-01-14 | 2011-04-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Methods, systems, and computer programs for customizing and distributing existing applications using browser-based proxy servers (browser-based proxy servers for customizing and distributing existing applications) |
US20120054616A1 (en) * | 2010-08-31 | 2012-03-01 | Millind Mittal | Web browser proxy-client video system and method |
-
2013
- 2013-07-25 JP JP2013154215A patent/JP6086490B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011511974A (en) * | 2008-01-14 | 2011-04-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Methods, systems, and computer programs for customizing and distributing existing applications using browser-based proxy servers (browser-based proxy servers for customizing and distributing existing applications) |
US20120054616A1 (en) * | 2010-08-31 | 2012-03-01 | Millind Mittal | Web browser proxy-client video system and method |
Non-Patent Citations (2)
Title |
---|
中茂睦裕 外4名: "中間ブラウザによるマルチデバイス連携技術の提案", 情報処理学会研究報告[DVD-ROM], JPN6016023639, 15 April 2013 (2013-04-15), pages 1 - 6, ISSN: 0003482844 * |
中茂睦裕 外5名: "中間ブラウザmotherによる操作代行の提案", 電子情報通信学会技術研究報告, vol. 113, no. 73, JPN6016023637, 23 May 2013 (2013-05-23), pages 69 - 74, ISSN: 0003482843 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669817A (en) * | 2018-12-19 | 2019-04-23 | 深圳市活力天汇科技股份有限公司 | A kind of Node.js Server Restart method based on PM2 |
Also Published As
Publication number | Publication date |
---|---|
JP6086490B2 (en) | 2017-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8868637B2 (en) | Page rendering for dynamic web pages | |
US20130091197A1 (en) | Mobile device as a local server | |
KR101650253B1 (en) | Method and device for displaying search result on mobile terminal | |
US20070220083A1 (en) | Estimation of initial dynamic rendering control data | |
US7984170B1 (en) | Cross-domain communication in domain-restricted communication environments | |
TWI661368B (en) | Method and device for information display | |
JP6418004B2 (en) | Event notification program, event notification method, and event notification device | |
CN112579118B (en) | Method, device, system, medium and equipment for updating configuration information of micro-service | |
WO2020216204A1 (en) | Information acquisition method and apparatus | |
WO2018014794A1 (en) | Smart television system | |
CN111309747A (en) | Data synchronization method, system and device | |
US20210044414A1 (en) | System and method for automatically synchronizing responses to conditions on devices | |
CN105743955A (en) | Method for JavaScript object expansion | |
CN106599045B (en) | Request sending method and device | |
CN104615432B (en) | Splash screen information processing method and client | |
US20120233560A1 (en) | Method for managing widgets in an electronic device to improve the user experience of the device | |
CN110619101B (en) | Method and apparatus for processing information | |
CN109981546B (en) | Method and device for acquiring remote call relation between application modules | |
CN110286954B (en) | Application program starting method and device and storage medium | |
EP3872630B1 (en) | Request processing method and apparatus, electronic device, and computer storage medium | |
CN111382039A (en) | Method, device, electronic equipment and storage medium for reporting user behavior event | |
JP6086490B2 (en) | Information processing apparatus, information processing method, and information processing program | |
CN111191225A (en) | Method, device, medium and electronic equipment for switching isolated objects | |
CN113591000B (en) | Browser engine switching method, device and equipment | |
US10516767B2 (en) | Unifying realtime and static data for presenting over a web service |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150928 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160615 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160621 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20161018 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161205 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20161213 |
|
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: 20170126 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170126 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6086490 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |