JP2011238091A - Information processing device, image forming device, information processing method, program and recording medium - Google Patents

Information processing device, image forming device, information processing method, program and recording medium Download PDF

Info

Publication number
JP2011238091A
JP2011238091A JP2010110001A JP2010110001A JP2011238091A JP 2011238091 A JP2011238091 A JP 2011238091A JP 2010110001 A JP2010110001 A JP 2010110001A JP 2010110001 A JP2010110001 A JP 2010110001A JP 2011238091 A JP2011238091 A JP 2011238091A
Authority
JP
Japan
Prior art keywords
script
execution
undefined
request
unit
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
Application number
JP2010110001A
Other languages
Japanese (ja)
Other versions
JP5464038B2 (en
Inventor
Hideto Nagae
秀人 長江
Takayuki Uchida
貴之 内田
Toshihiro Fujibayashi
敏啓 藤林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2010110001A priority Critical patent/JP5464038B2/en
Publication of JP2011238091A publication Critical patent/JP2011238091A/en
Application granted granted Critical
Publication of JP5464038B2 publication Critical patent/JP5464038B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a device capable of easily and quickly performing a feature expansion of a web browser installed in the device without changing the web browser.SOLUTION: The device is an information processing device or an image forming device provided with a data processing section to process content data including document data written in a markup language. The device has one or more script execution sections additionally installed to execute one or more undefined scripts other than a defined script for which a data processing section can execute. The device also has a script execution management section. The script execution management section receives a script execution request from the data processing section when the script execution request generated by the data processing section to process a detected event is the script execution request for the undefined script. Then the script execution management section transmits the execution request to one or more of the script execution sections in series to inquire for practicability thereof and makes a practicable script execution section execute the undefined script.

Description

本発明は、機能拡張に容易かつ迅速に対応できる情報処理装置および画像形成装置、その機能拡張された装置により実行される情報処理方法、その方法を実行するためのコンピュータ可読なプログラムおよび記録媒体に関する。   The present invention relates to an information processing apparatus and an image forming apparatus that can easily and quickly cope with function expansion, an information processing method executed by the function expanded apparatus, a computer-readable program for executing the method, and a recording medium .

インターネット上で公開されている文書であるWebページは、HTML(Hyper Text Markup Language)等のマークアップ言語を使用して作成され、タグという命令を使用して、HTML文書の構造を指定し、文字の大きさや色を変え、画像を表示させている。このHTMLにより記述された文書がHTML文書であり、このHTML文書はHTMLファイルとしてこれを提供するためのコンテンツサーバ等に保存されている。   Web pages, which are documents published on the Internet, are created using a markup language such as HTML (Hyper Text Markup Language), specify the structure of the HTML document using commands called tags, The image is displayed with different sizes and colors. The document described in HTML is an HTML document, and this HTML document is stored as an HTML file in a content server or the like for providing the HTML file.

HTML文書を閲覧する場合、上記のサーバ等にアクセスし、そのサーバ等からHTMLファイルを取得し、そのファイルを開くためにWebブラウザというアプリケーションソフトウェアが使用される。Webブラウザは、HTMLファイルのタグを解釈し、タグで指定された通りに画面上に表示するように構成されている。   When browsing an HTML document, application software called a web browser is used to access the above-described server, acquire an HTML file from the server, and open the file. The Web browser is configured to interpret the tag of the HTML file and display it on the screen as specified by the tag.

Webブラウザは、上記のHTML文書の表示のほか、Javascript(登録商標)というオブジェクト指向のスクリプト言語を使用することにより、動的な表示である、アクセスした時間帯によって異なったメッセージを表示させたり、アラート(警告のダイアログボックス)を表示させたりすることができる。   In addition to the display of the HTML document described above, the Web browser uses an object-oriented script language called JavaScript (registered trademark) to display a different message depending on the accessed time zone, which is a dynamic display. An alert (warning dialog box) can be displayed.

Javascript(登録商標)は、関連するデータ(属性)の集合と、そのデータの集合に対する手続き(メソッド)とから構成されるオブジェクトの集まりとしてプログラムを構成するオブジェクト指向プログラミングをサポートするプログラミング言語である。このJavascript(登録商標)は、scriptタグを用いて記述され、そのタグには属性値を指定して属性を付けることができ、属性を付けることにより具体的な指示を追加したり、より細かく背景色や文字の修飾等の効果を指定することができる。このようなJavascript(登録商標)を解釈し実行するために、Webブラウザは、そのJavascript(登録商標)を解釈し実行するためのコードが実装される。   Javascript (registered trademark) is a programming language that supports object-oriented programming that configures a program as a collection of objects composed of a collection of related data (attributes) and a procedure (method) for the collection of data. This JavaScript (registered trademark) is described using a script tag, and an attribute value can be specified to the tag, and an attribute can be added. By adding an attribute, a specific instruction can be added or a more detailed background can be added. You can specify effects such as color and character modification. In order to interpret and execute such Javascript (registered trademark), the web browser is implemented with code for interpreting and executing the Javascript (registered trademark).

Javascript(登録商標)でのアプリケーション開発は、テキストベースであるため、デバイス用のソフトウェア開発キット(SDK)やJava(登録商標)アプレット等を使用して開発を行うのに比較して、容易に行うことができる。従来、Webブラウザに、上述したJavascript(登録商標)を解釈し実行するためのコードを実装するために、ハードコーディングが採用されている。ハードコーディングとは、特定の動作環境で動作させることを目的とした処理やデータをソースコードに記述するプログラミング方式のことである。   Application development in Javascript (registered trademark) is text-based, so it is easier to develop than using software development kits (SDK) for devices and Java (registered trademark) applets. be able to. Conventionally, hard coding has been adopted in order to implement a code for interpreting and executing the above-described Javascript (registered trademark) in a Web browser. Hard coding is a programming method for describing processing and data in a source code for the purpose of operating in a specific operating environment.

PCや画像形成装置等に実装されたWebブラウザにおいて、独自のJavascript(登録商標)を実装し、装置固有の動作をさせたい場合がある。例えば、Javascript(登録商標)から装置のログインユーザ名やシリアルナンバーを取得し、それに応じた任意の処理を行う場合や、Javascript(登録商標)により読み取りや印刷を実行する場合等である。この装置固有の動作を実現するために、独自のJavascript(登録商標)を解釈し実行するためのコードを作成し、Webブラウザにそのコードをハードコーディングにより実装することができる。   In a Web browser mounted on a PC, an image forming apparatus, or the like, there is a case where it is desired to mount an original Javascript (registered trademark) and perform an operation specific to the apparatus. For example, the login user name or serial number of the apparatus is acquired from Javascript (registered trademark), and arbitrary processing is performed accordingly, or reading or printing is performed by Javascript (registered trademark). In order to realize this device-specific operation, a code for interpreting and executing a unique JavaScript (registered trademark) can be created, and the code can be implemented in a web browser by hard coding.

Webブラウザに独自のJavascript(登録商標)を解釈し実行するためのコードを実装した装置として、例えば、WebサーバからWebブラウザによって取得されたHTML文書には、Webブラウザが解釈する際に、埋め込まれたスクリプトがスクリプトインタプリタにロードされて実行され、その結果として、そのWebブラウザが組み込まれた特定の組み込み装置に動的に適応した文書が、クライアントサイド処理で生成されて表示される装置が提案されている(特許文献1参照)。   For example, an HTML document acquired by a Web browser from a Web server is embedded in the HTML document acquired by the Web browser as a device that implements a code for interpreting and executing a unique JavaScript (registered trademark) in the Web browser. As a result, a device is proposed in which a document dynamically adapted to a specific embedded device in which the Web browser is embedded is generated and displayed by client-side processing. (See Patent Document 1).

このように、組み込み装置のWebブラウザが独自のJavascript(登録商標)の実行機能を提供することで、組み込みブラウザからのアクセスに対応して動的なコンテンツをサーバ側の対応によって簡易に柔軟に拡張できるサービスとして供給することを可能にし、クライアント側情報のプライバシーやセキュリティーが守られる制御方法を提供することができる。   As described above, the Web browser of the embedded device provides a unique Javascript (registered trademark) execution function, so that dynamic contents corresponding to access from the embedded browser can be easily and flexibly expanded by the server side. It is possible to provide a control method in which privacy and security of client-side information can be protected.

上述したように、従来の装置や方法では、新たに独自のJavascript(登録商標)の属性やメソッドを、情報処理装置や画像形成装置が有するWebブラウザに追加する場合、そのWebブラウザのJavascript(登録商標)を解析し実行するためのコードを追加、変更する必要がある。これでは、Webブラウザ自体を変更し、変更の影響を受ける範囲について評価するための工数(作業量)が必要となってしまい、Javascript(登録商標)の機能の追加に柔軟に対応できないという問題があった。   As described above, in the conventional apparatus or method, when a new unique JavaScript (registered trademark) attribute or method is added to the Web browser of the information processing apparatus or image forming apparatus, the JavaScript (registered) of the Web browser is registered. It is necessary to add or change code for analyzing and executing the trademark. This requires a man-hour (amount of work) for changing the Web browser itself and evaluating the range affected by the change, and the problem that it is not possible to flexibly cope with the addition of Javascript (registered trademark) functions. there were.

また、Webブラウザは、不具合対応や、高速化、新しいアーキテクチャの実現等のために日々バージョンアップされており、それに伴い、装置に実装されるWebブラウザをバージョンアップしたい場合がある。そのたびにWebブラウザに対し、Javascript(登録商標)を解釈し実行するためのコードを実装し直すのでは、Webブラウザの変更に迅速に対応することができない。   In addition, Web browsers are upgraded every day in order to deal with defects, increase speed, realize a new architecture, and the like, and there is a case where it is desired to upgrade the Web browser installed in the apparatus. If the code for interpreting and executing Javascript (registered trademark) is re-implemented for the Web browser each time, the change of the Web browser cannot be quickly handled.

そこで、このような装置に実装されたWebブラウザに対し、Webブラウザ自体を変更することなく、機能拡張に容易かつ迅速に対応できる装置の提供が望まれていた。   Therefore, it has been desired to provide an apparatus that can easily and quickly cope with function expansion without changing the Web browser itself for a Web browser installed in such an apparatus.

本発明は、上記課題に鑑み、独自のスクリプトをブラウザにハードコーディングで組み込むのではなく、そのスクリプトの実装をプラグインで実現し、そのプラグインをCOM(Component Object Model)インタフェースとして実装する。COMは、部品化されたプログラムを作成し、利用するための基盤となる技術仕様であり、COMインタフェースは、このCOMに基づきデータのやりとりができるプログラム部品である。このCOMインタフェースは、開発に使った言語やコンポーネントのある場所に寄らず、どの言語からでも、どこからでも利用することができるという特徴を有する。このため、ブラウザに依存することなく、プラグインを呼び出す環境が変わっても、プラグインを修正する必要がないという利点を有する。   In view of the above problems, the present invention does not incorporate a unique script into a browser by hard coding, but implements the script with a plug-in and implements the plug-in as a COM (Component Object Model) interface. COM is a technical specification that is a basis for creating and using a componentized program, and the COM interface is a program component that can exchange data based on the COM. This COM interface has a feature that it can be used from any language and anywhere, regardless of the language or component used for development. For this reason, there is an advantage that the plug-in need not be corrected even if the environment for calling the plug-in changes without depending on the browser.

プラグイン側からブラウザに対して処理を要求する場合、例えば、ダイアログの表示要求やページ内のスクリプト関数の実行要求等、ブラウザ側が変更されれば、プラグイン側もその要求を行う処理を変更しなければならない。これを解決するために、ブラウザへプラグインが処理を要求するためのインタフェースをライブラリとしてプラグインに提供する。これにより、ブラウザ側の処理の変更差異をライブラリにより吸収することができるため、ブラウザがバージョンアップ等により変更されても、プラグインの修正を行う必要がなくなる。   When processing is requested from the plug-in side to the browser, for example, if the browser side is changed, such as a dialog display request or a script function execution request in a page, the plug-in side also changes the processing to perform the request. There must be. In order to solve this problem, an interface for requesting processing by the plug-in to the browser is provided to the plug-in as a library. As a result, differences in processing on the browser side can be absorbed by the library, so that even if the browser is changed due to version upgrade or the like, there is no need to modify the plug-in.

したがって、上記の課題は、これらの構成を実質的に採用する本発明の情報処理装置および画像形成装置を提供することにより解決することができる。   Therefore, the above-described problems can be solved by providing an information processing apparatus and an image forming apparatus of the present invention that substantially employ these configurations.

本発明の情報処理装置および印刷要求に応じて印刷処理を実行する画像形成装置は、マークアップ言語で記述された文書データを含むコンテンツデータを処理するデータ処理部を備える。そして、これらの装置は、そのデータ処理部が実行可能な定義済みスクリプト以外の1以上の未定義スクリプトを実行するために追加して実装された1以上のスクリプト実行部と、データ処理部が、検知したイベントを処理するために生成したスクリプトの実行要求が未定義スクリプトの実行要求である場合に、データ処理部から当該未定義スクリプトの実行要求を受け付け、当該未定義スクリプトの実行要求を1以上のスクリプト実行部へ順に送信して実行可能であるか否かを問い合わせ、実行可能な前記スクリプト実行部に当該未定義スクリプトを実行させるスクリプト実行管理部とを含む構成とされる。   An information processing apparatus and an image forming apparatus that executes print processing in response to a print request include a data processing unit that processes content data including document data described in a markup language. These devices include one or more script execution units that are additionally implemented to execute one or more undefined scripts other than the predefined scripts that can be executed by the data processing unit, and a data processing unit, When an execution request for a script generated to process a detected event is an execution request for an undefined script, the execution request for the undefined script is accepted from the data processing unit, and one or more execution requests for the undefined script are received. The script execution unit is inquired as to whether or not the script execution unit can execute the script, and the executable script execution unit causes the undefined script to be executed.

上記のプラグインは、スクリプト実行管理部が管理するスクリプト実行部として容易に追加または削除することができ、機能拡張するために追加された未定義スクリプトであってもその実装したスクリプト実行部により実行することができる。   The above plug-ins can be easily added or deleted as script execution units managed by the script execution management unit, and even undefined scripts added for function expansion are executed by the implemented script execution unit can do.

上記の1以上のスクリプト実行部は、階層構造を形成しており、その階層構造の上位のスクリプト実行部から下位のスクリプト実行部へ順に上記の未定義スクリプトの実行要求を送信して実行可能であるか否かを問い合わせ、実行可能な下位のスクリプト実行部に当該未定義のスクリプトを実行させるように構成される。このため、実行後、その下位のスクリプト実行部は、実行結果を上位のスクリプト実行部へ、上位のスクリプト実行部はスクリプト実行管理部へ、スクリプト実行管理部はデータ処理部へ通知する。   The one or more script execution units form a hierarchical structure, and the execution request for the undefined script can be executed in order from the upper script execution unit to the lower script execution unit in the hierarchical structure. It is configured to inquire whether or not there is, and to execute the undefined script in a subordinate executable script execution unit. Therefore, after execution, the lower-level script execution unit notifies the execution result to the higher-level script execution unit, the higher-level script execution unit to the script execution management unit, and the script execution management unit to the data processing unit.

また、スクリプト実行部からのデータ処理部への処理要求を受けて呼び出され、当該処理要求に対応しデータ処理部が実行可能な実行要求を当該データ処理部へ送信するインタフェース部をさらに備える。これにより、データ処理部がバージョンアップ等により更新されたとしても、スクリプト実行部を対応させて更新する必要がなくなり、手間を省くことができる。   Further, an interface unit is provided that is called in response to a processing request from the script execution unit to the data processing unit and transmits an execution request that can be executed by the data processing unit in response to the processing request to the data processing unit. As a result, even if the data processing unit is updated due to version upgrade or the like, it is not necessary to update the script execution unit correspondingly, and labor can be saved.

本発明では、情報処理装置および画像形成装置のほか、これらの装置により実行される情報処理方法、その方法を実行するためのコンピュータ可読なプログラム、そのプログラムが記録された記録媒体も提供することが可能である。   In the present invention, in addition to the information processing apparatus and the image forming apparatus, an information processing method executed by these apparatuses, a computer-readable program for executing the method, and a recording medium on which the program is recorded can be provided. Is possible.

本発明の情報処理装置および画像形成装置を含むネットワーク環境を例示した図。1 is a diagram illustrating a network environment including an information processing apparatus and an image forming apparatus according to the present invention. 本発明の情報処理装置および画像形成装置のコンポーネント構成図。1 is a component configuration diagram of an information processing apparatus and an image forming apparatus of the present invention. 独自のスクリプトを実行した場合の処理の流れを示したシーケンス図。The sequence diagram which showed the flow of the process at the time of executing an original script. 確認アラートを表示する処理の流れを示したシーケンス図。The sequence diagram which showed the flow of the process which displays a confirmation alert. 装置の状態変化が起こった場合の処理の流れを示したシーケンス図。The sequence diagram which showed the flow of the process when the state change of an apparatus occurred. スクリプトパーサで行われる処理の流れを示したフローチャート。The flowchart which showed the flow of the process performed with a script parser. プラグインマネージャで行われる処理の流れを示したフローチャート。The flowchart which showed the flow of the process performed with a plug-in manager. プラグインマネージャとプラグインの各クラスとを含むクラス構成図。Class configuration diagram including a plug-in manager and plug-in classes. オブジェクトの階層構造を例示した図。The figure which illustrated the hierarchical structure of the object. ユーティリティが行うWebブラウザへの処理要求およびWebブラウザからの通知を受け付ける処理のプログラミング言語による記述例を示した図。The figure which showed the example of a description by the programming language of the process which receives the notification from the process request to a web browser which a utility performs, and a web browser.

図1は、本発明の情報処理装置および画像形成装置を含むネットワーク環境を例示した図である。図1に示す情報処理装置は、PC100とされ、画像形成装置は、MFP(Multi Function Peripheral)110とされ、ネットワーク120にこれらのほか、外部サーバ130、140が接続されている。   FIG. 1 is a diagram illustrating a network environment including an information processing apparatus and an image forming apparatus according to the present invention. The information processing apparatus shown in FIG. 1 is a PC 100, and the image forming apparatus is an MFP (Multi Function Peripheral) 110. In addition to these, external servers 130 and 140 are connected to a network 120.

PC100は、OSや各種アプリケーションを実行し、装置全体の制御や各種の演算処理を行うCPUを備える。例えば、CPUは、ネットワーク120を介した通信を行い、ユーザから入力を受け付け、表示装置に演算結果等を出力し、コンテンツ再生、リッピング、記憶装置へのデータ等の記憶、記憶装置からのデータ等の読み出し、データ等の管理を行う。   The PC 100 includes a CPU that executes an OS and various applications, and controls the entire apparatus and performs various arithmetic processes. For example, the CPU performs communication via the network 120, receives input from the user, outputs calculation results and the like to the display device, reproduces content, rips, stores data to the storage device, data from the storage device, and the like Reading, data management, etc.

PC100は、上述した通信を行うために通信インタフェースを備え、また、ユーザからの入力を受け付けるために入力装置を備える。通信インタフェースは、LAN端子、モデム、無線LANを実現するためのアンテナおよび送受信機を含むことができる。入力装置としては、文字や数字を入力するためのキーボード、画面に表示されるカーソルの移動、ウィンドウやアイコン等の選択、ボタンの押下を実現するためのマウスのほか、指やスタイラス等を使用して画面上のカーソルの移動やアイコンの選択等を実現するタッチパネルを採用することができる。また、上述した表示装置として、液晶ディスプレイやCRT等を採用することができる。さらに、記憶装置として、ROM、RAM、HDD等を備えることができ、外部記憶装置としてのSDカード、CD−R、CD−RW、DVD−R、DVD−RW、DVD−RAM等に記憶するためにSDカードスロット、CDドライブ、DVDドライブ等を備えることができる。   The PC 100 includes a communication interface for performing the above-described communication, and also includes an input device for receiving input from the user. The communication interface can include a LAN terminal, a modem, an antenna for realizing a wireless LAN, and a transceiver. Input devices include a keyboard for inputting letters and numbers, movement of the cursor displayed on the screen, selection of windows, icons, etc., mouse for realizing button pressing, fingers, stylus, etc. It is possible to employ a touch panel that realizes movement of the cursor on the screen, selection of icons, and the like. Moreover, a liquid crystal display, CRT, etc. are employable as a display apparatus mentioned above. Furthermore, as a storage device, ROM, RAM, HDD, etc. can be provided and stored in an SD card, CD-R, CD-RW, DVD-R, DVD-RW, DVD-RAM, etc. as an external storage device. SD card slot, CD drive, DVD drive, and the like.

そのほか、PC100は、音声を出力するためのスピーカ、AV機器や他の機器を接続するためのIEEE1394デバイスやUSBデバイス等を備えることができる。   In addition, the PC 100 can include a speaker for outputting sound, an IEEE 1394 device, a USB device, and the like for connecting AV equipment and other equipment.

MFP110は、PC100と同様、CPU、記憶装置としてのROM、RAM、HDD、表示装置、入力装置、通信インタフェース、スピーカ、IEEE1394デバイス、USBデバイス、SDカードスロット等を備える。MFP110は、表示装置および入力装置として、操作パネルを備え、入力装置として複数のキーを備える。   Similar to the PC 100, the MFP 110 includes a CPU, a ROM as a storage device, a RAM, an HDD, a display device, an input device, a communication interface, a speaker, an IEEE 1394 device, a USB device, an SD card slot, and the like. The MFP 110 includes an operation panel as a display device and an input device, and includes a plurality of keys as the input device.

また、MFP110は、印刷、FAX送受信、コピー、画像読み取りを実現するために画像読み取り装置、プリンタを備えている。画像読み取り装置は、外光を遮断するためのカバーと、そのカバーの下の、原稿を載せるための透明なプラスチック製あるいはガラス製の原稿台と、原稿台の下から原稿台を通して光を照射する光源と、原稿に反射した光を受光し、電気信号に変換する撮像素子と、変換された電気信号がアナログ信号であるため、このアナログ信号をデジタル信号へ変換するためのADコンバータとを備えている。   Further, the MFP 110 includes an image reading device and a printer in order to realize printing, FAX transmission / reception, copying, and image reading. The image reading apparatus irradiates light from a cover for shielding external light, a transparent plastic or glass platen for placing a document under the cover, and a document platen from below the platen. A light source, an image sensor that receives light reflected from the document and converts it into an electrical signal, and an AD converter for converting the analog signal into a digital signal because the converted electrical signal is an analog signal. Yes.

ここでは、反射型の画像読み取り装置の構成について説明したが、画像読み取り装置は透過型であってもよく、透過型の場合、光源がカバーに設けられ、カバー側から光を照射し、原稿および原稿台を透過した光を撮像素子により受光することができる。なお、撮像素子は、CCDイメージセンサやCMOSイメージセンサ等を採用することができ、原稿台を通した光は、直接に撮像素子に受光されるもののほか、1または複数のミラーにより反射されてから、イメージセンサに入射される構成であってもよい。   Here, the configuration of the reflection type image reading apparatus has been described. However, the image reading apparatus may be a transmissive type. In the case of the transmissive type, a light source is provided on the cover, and light is irradiated from the cover side, and the document and The light transmitted through the document table can be received by the image sensor. Note that a CCD image sensor, a CMOS image sensor, or the like can be used as the image sensor, and the light that has passed through the document table is not directly received by the image sensor but also reflected by one or more mirrors. Further, it may be configured to be incident on the image sensor.

MFP110で採用されるプリンタは、レーザプリンタとすることができ、PC100から送られてきた印刷イメージデータを、MFP110が備えるCPUによりメモリ上に展開し、そのイメージを、レーザを用いて形成する。すなわち、このプリンタは、印刷イメージデータを基に書き込み光としてのレーザを照射する露光装置と、レーザが照射されることにより表面にそのイメージと同様の潜像が形成される感光体と、その感光体を、レーザが照射される前に帯電させる帯電ユニットと、潜像が形成された感光体にトナーを付着させ、現像する現像ユニットと、紙を給紙する給紙ユニットと、感光体の回転により表面に形成されたトナー像を、給紙された紙上に転写させる転写ユニットと、紙上に転写されたトナー像を、熱および圧力を加えて紙に定着させる定着ユニットと、トナー像が定着された紙を排紙する排紙ユニットとを備えている。   The printer employed in the MFP 110 can be a laser printer, and print image data sent from the PC 100 is developed on a memory by a CPU provided in the MFP 110, and the image is formed using a laser. That is, this printer includes an exposure device that irradiates a laser as writing light based on print image data, a photoconductor on which a latent image similar to the image is formed on the surface by irradiating the laser, and the photosensitive A charging unit that charges the body before the laser is irradiated, a developing unit that attaches toner to the photosensitive member on which the latent image is formed and develops, a paper feeding unit that feeds paper, and rotation of the photosensitive member The toner image formed on the surface by the transfer unit for transferring the toner image transferred onto the fed paper, the fixing unit for fixing the toner image transferred on the paper to the paper by applying heat and pressure, and the toner image fixed. And a paper discharge unit for discharging the printed paper.

プリンタは、そのほか、感光体上に残ったトナーを除去するためのクリーニングユニット、紙を所定の方向へ搬送するための複数のローラ等を備えることができる。   In addition, the printer can include a cleaning unit for removing toner remaining on the photosensitive member, a plurality of rollers for conveying paper in a predetermined direction, and the like.

MFP110は、原稿を自動で原稿台上へ搬送するために原稿自動送り装置(ADF)、高速な画像処理が必要であることから、画像処理専用の回路であるASIC等をさらに備えることができる。   Since the MFP 110 requires an automatic document feeder (ADF) and high-speed image processing to automatically convey the document onto the document table, the MFP 110 can further include an ASIC that is a dedicated circuit for image processing.

MFP110は、原稿を読み取る場合は、上記の画像読み取り装置を使用して原稿を読み取ることができる。また、印刷する場合は、送られてきた印刷データに基づき、上記プリンタにより感光体の表面にレーザで潜像を形成し、それを現像し、紙に転写および定着させることにより、印刷することができる。コピーの場合は、画像読み取り装置を使用して原稿を読み取り、その読み取ったデータに基づきプリンタにより印刷出力することができる。   When reading the document, the MFP 110 can read the document using the image reading apparatus described above. In the case of printing, it is possible to print by forming a latent image on the surface of the photoconductor with a laser based on the sent print data, developing it, and transferring and fixing it on paper. it can. In the case of copying, an original can be read using an image reading device, and printed out by a printer based on the read data.

FAX送信する場合は、画像読み取り装置により原稿を二次元情報である線あるいは点に分解して読み取り、モデムを利用してデジタル変調し、電話網等の通信回線へと送出することができる。一方、FAX受信する場合は、通信回線を介して送信された信号を、モデムを利用して復調し、原稿を復元することができる。   In the case of FAX transmission, an original can be decomposed and read into two-dimensional information lines or points by an image reading device, digitally modulated using a modem, and sent to a communication line such as a telephone network. On the other hand, in the case of FAX reception, a signal transmitted via a communication line can be demodulated using a modem to restore a document.

なお、画像読み取り装置で読み取ったデータ、そのデータを圧縮、変換等した後のデータ、FAX受信したデータは、メモリ等の記憶装置に記憶することができる。   The data read by the image reading device, the data after the data is compressed and converted, and the data received by FAX can be stored in a storage device such as a memory.

ネットワーク120は、社内等の限られた範囲で構築されるイントラネット、範囲が限定されないインターネットを挙げることができる。外部サーバ130、140は、上述したPC100と同様、CPU、記憶装置、通信インタフェースを備える構成とされ、表示装置、入力装置を備えていてもよい。   Examples of the network 120 include an intranet constructed within a limited range such as in-house, and the Internet where the range is not limited. As with the PC 100 described above, the external servers 130 and 140 are configured to include a CPU, a storage device, and a communication interface, and may include a display device and an input device.

外部サーバ130、140は、マークアップ言語で記述された文書データを含むコンテンツデータを提供する。ここで、マークアップ言語とは、文章の段落やフォントサイズ等の指定や、画像や他の文書へのリンクをタグと呼ばれる文字列を使用して記述する記述言語である。このマークアップ言語としては、HTML(Hyper Text Markup Language)等が使用される。このHTMLにより記述されるHTMLファイルを含むコンテンツデータにWebページがある。外部サーバ130、140は、PC100やMFP110からの要求に応答して、このWebページを提供することができる。PC100やMFP110は、このWebページの閲覧を外部サーバ130、140へ要求し、Webページの提供を受けるためにWebブラウザが実装される。   The external servers 130 and 140 provide content data including document data described in a markup language. Here, the markup language is a description language in which text paragraphs and font sizes are specified, and links to images and other documents are described using character strings called tags. As this markup language, HTML (Hyper Text Markup Language) or the like is used. There is a Web page in the content data including the HTML file described in HTML. The external servers 130 and 140 can provide this Web page in response to a request from the PC 100 or the MFP 110. The PC 100 and MFP 110 request the external servers 130 and 140 to browse the Web page, and a Web browser is installed to receive the Web page.

PC100およびMFP110は、Webブラウザから外部サーバ130、140へWebページを要求し、外部サーバ130、140から送信されたWebページのHTMLファイルを解釈し、ブラウザ画面上にWebページの内容を表示することができる。外部サーバ130、140は、Webブラウザからの要求に応答するため、アプリケーションソフトウェアとして、Webサーバを実装する。   The PC 100 and the MFP 110 request a web page from the web browser to the external servers 130 and 140, interpret the HTML file of the web page transmitted from the external server 130 and 140, and display the content of the web page on the browser screen. Can do. The external servers 130 and 140 implement a web server as application software in order to respond to a request from the web browser.

PC100およびMFP110が実装するWebブラウザと、外部サーバ130、140が実装するWebサーバとの間の通信は、HTTP(Hypertext Transfer Protocol)を通信プロトコルとして使用し、HTMLファイルを含むコンテンツデータの送受信が行われる。   Communication between the Web browser installed on the PC 100 and the MFP 110 and the Web server installed on the external servers 130 and 140 uses HTTP (Hypertext Transfer Protocol) as a communication protocol, and transmits / receives content data including an HTML file. Is called.

なお、PC100およびMFP110は、アプリケーションソフトウェアとしてのWebブラウザを動作させるために、入出力機能やメモリの管理等、アプリケーションソフトウェアから共通して利用される基本的な機能を提供し、装置全体を管理する基本的なソフトウェアであるOS(Operating System)を実装する。   The PC 100 and the MFP 110 provide basic functions commonly used by application software, such as input / output functions and memory management, in order to operate a Web browser as application software, and manage the entire apparatus. OS (Operating System) which is basic software is installed.

MFP110においては、アプリケーションソフトウェアとしてそのほか、印刷ジョブを実行させるプリンタアプリ、コピージョブを実行させるコピーアプリ、ファックス送受信ジョブを実行させるファックスアプリ、スキャンジョブを実行させるスキャナアプリを備える。これらのアプリとOSとの間のインタフェースとして、API(Application Programming Interface)、Java(登録商標)仮想マシン(JVM)等を備えることができる。APIは、プリンタアプリ等のアプリケーションプログラムを記述する際、OSの機能を呼び出すためのインタフェースであり、JVMは、Java(登録商標)バイトコードをOS上で動作可能なネイティブコードに変換して実行するものである。このため、JVMを実装する場合、アプリケーションソフトウェアは、Java(登録商標)のバイトコードによって実装されたものとすることができる。   In addition to the application software, the MFP 110 includes a printer application that executes a print job, a copy application that executes a copy job, a fax application that executes a fax transmission / reception job, and a scanner application that executes a scan job. As an interface between these applications and the OS, an API (Application Programming Interface), a Java (registered trademark) virtual machine (JVM), or the like can be provided. The API is an interface for calling an OS function when an application program such as a printer application is described. The JVM converts a Java (registered trademark) byte code into a native code operable on the OS and executes it. Is. For this reason, when the JVM is implemented, the application software can be implemented by a Java (registered trademark) bytecode.

図2は、図1に示す情報処理装置および画像形成装置のコンポーネント構成図である。これらの装置は、コンポーネントとして、Webブラウザ200、プラグインマネージャ210、プラグイン220、ユーティリティ230、デバイスSDK240を備えている。また、Webブラウザ200は、イベントプロセス201、UI202、スクリプトパーサ203を備えている。   FIG. 2 is a component configuration diagram of the information processing apparatus and the image forming apparatus shown in FIG. These apparatuses include a Web browser 200, a plug-in manager 210, a plug-in 220, a utility 230, and a device SDK 240 as components. The Web browser 200 includes an event process 201, a UI 202, and a script parser 203.

このWebブラウザ200は、CPUにより実行され、コンテンツデータをWebサーバに対して要求し、Webサーバから提供されたコンテンツデータを表示する等のデータ処理を行うことから、CPUにより実行されてデータ処理部として機能する。また、プラグインマネージャ210、プラグイン220、ユーティリティ230、デバイスSDK240も同様に、CPUにより実行され、各々の処理を行うことから、CPUにより実行されてスクリプト実行管理部、スクリプト実行部、インタフェース部、デバイス制御部としてそれぞれ機能する。実際の処理は、これらデータ処理部、スクリプト実行管理部、スクリプト実行部、インタフェース部、デバイス制御部が実行するが、説明を容易にし、内容の理解をしやすくするために、以下、Webブラウザ200、プラグインマネージャ210、プラグイン220、ユーティリティ230、デバイスSDK240の用語を用いて説明する。   The web browser 200 is executed by the CPU and performs data processing such as requesting content data from the web server and displaying the content data provided from the web server. Function as. Similarly, the plug-in manager 210, the plug-in 220, the utility 230, and the device SDK 240 are also executed by the CPU and perform the respective processes, so that they are executed by the CPU and executed by the script execution management unit, script execution unit, interface unit, Each functions as a device control unit. The actual processing is executed by the data processing unit, script execution management unit, script execution unit, interface unit, and device control unit. In order to facilitate the explanation and make it easier to understand the contents, the Web browser 200 will be described below. , Plug-in manager 210, plug-in 220, utility 230, and device SDK 240 will be used for explanation.

Webブラウザ200は、一定の書式によりコンテンツデータを指し示す識別子であるURI(Uniform Resource Identifier)やHTTPに基づき、外部サーバ130、140に実装されるWebサーバと通信し、目的のコンテンツデータを取得し、その取得したコンテンツデータを、種類に応じて解析し、その解析結果を基に、テキストや画像等を適切な位置に配置したり、文字サイズを調整したり、色を付ける等して表示する。   The Web browser 200 communicates with a Web server mounted on the external servers 130 and 140 based on URI (Uniform Resource Identifier) that is an identifier indicating content data in a certain format and HTTP, and acquires target content data. The acquired content data is analyzed according to the type, and based on the analysis result, text, an image, etc. are arranged at an appropriate position, a character size is adjusted, a color is added, and the like are displayed.

UI202は、Webブラウザ200において、ユーザからのデータ取得の指示を入力として受け付け、また、取得したコンテンツデータに含まれる文字や画像等を適切な位置に配置し、文字調整等されたものの表示を行う。Webブラウザ200は、このコンテンツデータに含まれるHTML文書を解析し、UI202に対しレイアウト指示を行うために、図示しないHTMLパーサを備えることができる。   In the Web browser 200, the UI 202 accepts a data acquisition instruction from the user as an input, and arranges characters, images, and the like included in the acquired content data at appropriate positions, and displays characters adjusted and the like. . The Web browser 200 can include an HTML parser (not shown) in order to analyze an HTML document included in the content data and to issue a layout instruction to the UI 202.

イベントプロセス201は、ユーザ入力等により発生するイベントを処理する。また、イベントプロセス201は、Webブラウザ200の機能拡張のためにハードコーディングにより記述されたWebブラウザ200に予め定義されている定義済みスクリプト、例えば、任意の入力キーが押下された場合に実行されるスクリプト等のほか、装置に設定されている値の取得や値の設定を行うためのスクリプト、セキュリティや重要な処理に関するスクリプト等のWebブラウザ200に予め定義されていないスクリプト、すなわち機能拡張のために独自に作成され、装置に追加されたスクリプトや変更されたスクリプトの実行要求を、それらの検知したイベントを処理するために生成し、スクリプトパーサ203へ送る。   The event process 201 processes an event generated by a user input or the like. Further, the event process 201 is executed when a predefined script, for example, an arbitrary input key is pressed in the Web browser 200 described by hard coding for function expansion of the Web browser 200 is pressed. In addition to scripts and the like, scripts that are not pre-defined in the Web browser 200, such as scripts for acquiring values set in the apparatus and setting values, scripts relating to security and important processing, ie, for function expansion An execution request for a script that is uniquely created and added to the apparatus or a modified script is generated to process the detected event, and is sent to the script parser 203.

スクリプトは、操作対象となるオブジェクトについての性質や設定に関する付加情報としての属性と、そのオブジェクトに対する操作を規定するメソッドとを含んで構成される。このため、Webブラウザ200に定義されていない未定義スクリプトとしては、この属性やメソッドの追加や変更したものが挙げられる。未定義スクリプトを実行するためには、そのスクリプトを解釈し実行するコードが必要となるが、そのコードが、機能を追加するためのプログラムであるプラグイン220として提供され、装置にプラグイン220として実装される。   The script includes an attribute as additional information related to the properties and settings of the object to be operated, and a method that defines an operation on the object. For this reason, examples of undefined scripts that are not defined in the Web browser 200 include those in which these attributes and methods are added or changed. In order to execute an undefined script, a code for interpreting and executing the script is required. The code is provided as a plug-in 220 that is a program for adding a function, and is provided as a plug-in 220 to the apparatus. Implemented.

イベントプロセス201は、ユーザからの値の取得、設定、キー入力等を受け付けた場合、また、セキュリティ上や処理の種類に応じて確認アラート(警告や注意)を表示する必要がある場合等、イベントが発生した場合に、そのイベントに対応するスクリプトの実行要求を生成し、それをスクリプトパーサ203へ送る。例えば、ユーザが任意の値を設定する場合であれば、ユーザによる値の入力によりイベントが発生し、そのイベント発生を受けてその値を含む設定要求を生成し、それをスクリプトパーサ203へ送る。   When the event process 201 receives a value acquisition, setting, key input, or the like from the user, or when it is necessary to display a confirmation alert (warning or caution) according to the type of security or processing, the event process 201 Is generated, a script execution request corresponding to the event is generated and sent to the script parser 203. For example, if the user sets an arbitrary value, an event is generated by the input of the value by the user, a setting request including the value is generated in response to the event occurrence, and is sent to the script parser 203.

イベントプロセス201からスクリプトの実行要求を受け付けると、スクリプトパーサ203は、そのスクリプトの実行要求がWebブラウザ200に定義されているものであるか、未定義のものであるかを判断する。その実行要求で要求される処理がスクリプト言語によりハードコーディングされていて、既に定義されているものである場合、スクリプトパーサ203は、その要求がその処理を要求するものと解釈し、その処理を実行することができる。しかしながら、未定義スクリプトの実行要求である場合、スクリプトパーサ203は、それを解釈し、実行するコードが存在しないため、解釈および実行することはできず、プラグインマネージャ210へそのスクリプトの実行を要求する。   When a script execution request is received from the event process 201, the script parser 203 determines whether the script execution request is defined in the Web browser 200 or undefined. If the processing requested by the execution request is hard-coded in the script language and is already defined, the script parser 203 interprets the request as requiring the processing and executes the processing. can do. However, if the request is an execution request for an undefined script, the script parser 203 interprets it and cannot execute it because there is no code to execute, and requests the plug-in manager 210 to execute the script. To do.

プラグインマネージャ210は、未定義スクリプトを実行するためのプラグイン220を複数管理しており、スクリプトパーサ203から受け付けたスクリプト実行要求を基に、そのスクリプトに対応するプラグイン、すなわちそのスクリプトを実行することができるプラグインを探し、その対応するプラグインへそのスクリプトの実行を要求する。   The plug-in manager 210 manages a plurality of plug-ins 220 for executing undefined scripts. Based on the script execution request received from the script parser 203, the plug-in manager 210 executes the plug-in corresponding to the script, that is, the script. Search for a plug-in that can do that and request that corresponding plug-in to execute the script.

プラグイン220は、プラグインの開発言語に依存せず、プラグインを呼び出す環境が変わっても利用可能にするために、COM(Component Object Model)インタフェースとして実装される。これにより、プラグインを修正する必要がなくなり、様々なプログラミング言語でプラグインの開発を行うことが可能とされる。また、実装の際、プラグインマネージャ210に管理されるように、プラグイン220を識別するための識別情報がプラグインマネージャ210に登録される。   The plug-in 220 is implemented as a COM (Component Object Model) interface so that the plug-in 220 does not depend on the plug-in development language and can be used even when the environment for calling the plug-in changes. As a result, it is not necessary to modify the plug-in, and the plug-in can be developed in various programming languages. Further, identification information for identifying the plug-in 220 is registered in the plug-in manager 210 so as to be managed by the plug-in manager 210 at the time of mounting.

プラグイン220は、装置のリソースにアクセスするために、デバイスSDK240を呼び出す。なお、デバイスSDK240は、メモリに記憶されている値の取得やその設定、入力キーの押下の検知等を行うものである。   Plug-in 220 calls device SDK 240 to access device resources. Note that the device SDK 240 performs acquisition of values stored in the memory, setting of the values, detection of pressing of an input key, and the like.

プラグイン220は、Webブラウザ200に対し、画面表示等の処理を要求するために、Webブラウザ200から提供されたユーティリティ230を呼び出す。ユーティリティ230は、プラグイン220がWebブラウザ200へ処理を要求するためのインタフェースであって、ライブラリとして実装される。このインタフェースは、様々なプログラムから利用できるように部品化した複数のプログラム部品からなるライブラリであることから、複数のプラグインから利用可能とされる。これにより、プラグイン220から要求されたユーティリティ230は、その要求された処理を、Webブラウザ200がバージョンアップ等され、更新されたとしても、更新後のWebブラウザ200へ適切に通知することができる。   The plug-in 220 calls the utility 230 provided from the Web browser 200 in order to request the Web browser 200 to perform processing such as screen display. The utility 230 is an interface for the plug-in 220 to request processing from the Web browser 200, and is implemented as a library. Since this interface is a library made up of a plurality of program parts that are divided into parts that can be used from various programs, it can be used from a plurality of plug-ins. As a result, the utility 230 requested from the plug-in 220 can appropriately notify the requested processing to the updated web browser 200 even if the requested processing is updated and updated. .

Webブラウザ200では、その通知をイベントプロセス201が受け付け、UI202に対し、所望の表示を指示することができる。   In the Web browser 200, the event process 201 accepts the notification, and can instruct the UI 202 to perform a desired display.

ユーザは、自己が保有あるいは管理するPCやMFPに対し、装置固有の動作をさせたい場合がある。例えば、上記のようにスクリプトとしてのJavascript(登録商標)から装置のログインユーザ名やシリアルナンバーを取得し、それに応じた任意の処理を行う場合や、Javascript(登録商標)の実行により読み取りや印刷を行う場合等である。本発明の装置では、未定義スクリプトをプラグイン220という形で容易に追加し、実装することができるため、Webブラウザ200についてその未定義スクリプトを解釈し実行するコードを実装し直す必要がなく、Webブラウザ200のバージョンアップ等の変更に迅速に対応することができる。   In some cases, a user wants to perform a device-specific operation on a PC or MFP owned or managed by the user. For example, as described above, the login user name or serial number of the apparatus is acquired from Javascript (registered trademark) as a script, and arbitrary processing is performed according to the acquired user name or serial number, or reading or printing is performed by executing JavaScript (registered trademark). For example. In the apparatus of the present invention, an undefined script can be easily added and implemented in the form of a plug-in 220, so there is no need to re-implement code for interpreting and executing the undefined script for the Web browser 200. It is possible to respond quickly to changes such as version upgrades of the web browser 200.

Webブラウザ200にスクリプトの属性やメソッドを追加する場合、その追加したWebブラウザ200に定義されていない未定義スクリプトをプラグイン220として実装するが、複数のアプリケーションソフトウェアが共通して利用するために部品化されたDLL(Dynamic Link Library)ファイルとして実装することができる。   When a script attribute or method is added to the Web browser 200, an undefined script that is not defined in the added Web browser 200 is implemented as the plug-in 220. However, a component for use by a plurality of application software in common. It can be implemented as a structured DLL (Dynamic Link Library) file.

以下、上記の未定義スクリプトをプラグインとして実装した情報処理装置あるいは画像形成装置が行う処理について、図面を参照しながら詳細に説明する。図3は、その装置がある値を取得あるいは設定する処理の基本的な流れを示したシーケンス図である。取得する値としては、システム情報やステータス情報としての各値やパラメータ等を挙げることができる。また、装置への値の設定については、それらの値やパラメータの設定を挙げることができる。実行するスクリプト関数の設定であってもよい。なお、この値の取得あるいは設定する処理は未定義スクリプトを実行することにより実現される処理である。   Hereinafter, processing performed by the information processing apparatus or image forming apparatus in which the undefined script is mounted as a plug-in will be described in detail with reference to the drawings. FIG. 3 is a sequence diagram showing a basic flow of processing for acquiring or setting a certain value for the apparatus. Examples of the value to be acquired include each value and parameter as system information and status information. Moreover, about the setting of the value to an apparatus, the setting of those values and parameters can be mentioned. It may be a setting of a script function to be executed. Note that the process of acquiring or setting this value is a process realized by executing an undefined script.

まず、Webブラウザ200のイベントプロセス201は、ユーザから値の取得あるいは設定の要求を受け付けると、その処理を実現するために未定義スクリプトの実行要求を生成し、その実行要求をスクリプトパーサ203に送る。スクリプトパーサ203は、それを受け取ると、そのスクリプトがWebブラウザ200に定義されているか否かを判断する。ここではこのスクリプトはWebブラウザ200に定義されていないため、スクリプトパーサ203は、未定義スクリプトと判断し、プラグインマネージャ210へそのスクリプトの実行を要求する。プラグインマネージャ210は、そのスクリプトに対応するプラグイン220を探し、そのプラグイン220に対してその実行を要求する。プラグイン220は、その実行要求を受け付けると、デバイスSDK240に対し、そのスクリプトにより要求された値の取得や設定を要求する。   First, when the event process 201 of the Web browser 200 receives a value acquisition or setting request from a user, the event process 201 generates an undefined script execution request in order to realize the processing, and sends the execution request to the script parser 203. . When the script parser 203 receives it, the script parser 203 determines whether or not the script is defined in the Web browser 200. Here, since this script is not defined in the Web browser 200, the script parser 203 determines that the script is an undefined script and requests the plug-in manager 210 to execute the script. The plug-in manager 210 searches for the plug-in 220 corresponding to the script and requests the plug-in 220 to execute it. When the plug-in 220 accepts the execution request, the plug-in 220 requests the device SDK 240 to acquire or set a value requested by the script.

図4は、未定義スクリプトを実行する処理の一例として、確認アラートを表示する処理を実行する処理の流れを示したシーケンス図である。この確認アラート(警告や注意)は、例えば、セキュリティや重要な処理に関係するスクリプトの実行を行う前に表示することができる。   FIG. 4 is a sequence diagram showing a flow of a process for executing a process for displaying a confirmation alert as an example of a process for executing an undefined script. This confirmation alert (warning or attention) can be displayed, for example, before executing a script related to security or important processing.

イベントプロセス201は、セキュリティや重要な処理の実行の要求を受け付けたことに応答して、その処理を実現するためにスクリプトの実行要求を生成し、この実行要求をスクリプトパーサ203へ送る。スクリプトパーサ203は、受け取った実行要求から、実行対象のスクリプトがWebブラウザ200に定義されているか否かを判断する。このスクリプトは定義されていないので、スクリプトパーサ203は、未定義スクリプトと判断し、プラグインマネージャ210にその実行を要求する。プラグインマネージャ210は、そのスクリプトに対応するプラグイン220を探し、そのプラグイン220に対し実行を要求する。   In response to receiving a request for execution of security or important processing, the event process 201 generates a script execution request for realizing the processing, and sends the execution request to the script parser 203. The script parser 203 determines whether or not an execution target script is defined in the Web browser 200 from the received execution request. Since this script is not defined, the script parser 203 determines that it is an undefined script and requests the plug-in manager 210 to execute it. The plug-in manager 210 searches for the plug-in 220 corresponding to the script and requests the plug-in 220 to execute.

このスクリプトは、まず、Webブラウザ200において確認アラートを表示する処理を実行することから、プラグイン220は、ユーティリティ230に対し、確認アラートの表示を要求する。ユーティリティ230は、この要求を受け付け、Webブラウザ200が実行できる実行要求へ変換し、Webブラウザ200のイベントプロセス201に対し、その実行要求を送信し、確認アラートの表示を要求する。イベントプロセス201は、その実行要求を受信し、UI202に確認アラートの表示を指示し、表示させる。   Since this script first executes a process of displaying a confirmation alert in the Web browser 200, the plug-in 220 requests the utility 230 to display a confirmation alert. The utility 230 receives this request, converts it into an execution request that can be executed by the Web browser 200, transmits the execution request to the event process 201 of the Web browser 200, and requests display of a confirmation alert. The event process 201 receives the execution request, instructs the UI 202 to display a confirmation alert, and displays the confirmation alert.

UI202は、その指示に従い、「警告」あるいは「注意」等のメッセージを含む文字列、「OK」および「キャンセル」ボタン等を表示する。これにより、ユーザに対し、ボタンの押下を促す。UI202は、ユーザからの「OK」ボタンの押下または「キャンセル」ボタンの押下を検知すると、イベントプロセス201に押下されたボタンの種類を通知する。イベントプロセス201は、その情報を受け付け、ユーティリティ230に対し、そのボタンの種類を通知し、ユーティリティ230は、プラグイン220に対し、そのボタンの種類を通知する。   In accordance with the instruction, the UI 202 displays a character string including a message such as “Warning” or “Caution”, “OK” and “Cancel” buttons, and the like. This prompts the user to press a button. When the UI 202 detects that the user has pressed the “OK” button or the “Cancel” button, the UI 202 notifies the event process 201 of the type of the pressed button. The event process 201 receives the information and notifies the utility 230 of the button type, and the utility 230 notifies the plug-in 220 of the button type.

この通知を受けて、プラグイン220は、ユーティリティ230に確認アラートを表示する処理の終了を要求する。そして、プラグイン220は、押下されたボタンが「キャンセル」ボタンである場合は処理を中止し、「OK」ボタンである場合は上述したセキュリティや重要な処理に関係するスクリプトの実行を開始し、デバイスSDK240に対して処理を要求する。   Upon receiving this notification, the plug-in 220 requests the utility 230 to end the process of displaying the confirmation alert. Then, if the pressed button is a “cancel” button, the plug-in 220 stops the process, and if it is an “OK” button, the plug-in 220 starts executing the script related to the above-described security and important processes. Requests the device SDK 240 for processing.

図5は、未定義スクリプトを実行する処理の別の例として、上記装置の状態変化によるスクリプトを実行する処理の流れを示したシーケンス図である。例えば、ユーザがキーを押下することにより任意のスクリプトを実行する場合である。   FIG. 5 is a sequence diagram showing a flow of processing for executing a script according to a change in the state of the apparatus as another example of processing for executing an undefined script. For example, it is a case where a user executes an arbitrary script by pressing a key.

この場合、デバイスSDK240は、装置の状態変化による任意のスクリプト関数を実行するために、Webブラウザ200にその処理を要求するプラグイン220へ装置の状態変化(ここでは、キーの押下)があったことを通知する。この状態変化を通知する処理は、プラグイン220が予めデバイスSDK240に対し、キーの操作があった場合に通知するよう要求しておくことで実現できる。なお、実行するスクリプト関数は、未定義スクリプトの実行により、図3に示したシーケンスに基づき設定されるものとすることができる。   In this case, in order for the device SDK 240 to execute an arbitrary script function depending on the state change of the device, the device state change (here, a key is pressed) to the plug-in 220 that requests the Web browser 200 to perform the process. Notify that. The process of notifying the state change can be realized by requesting the plug-in 220 to notify the device SDK 240 in advance when a key is operated. The script function to be executed can be set based on the sequence shown in FIG. 3 by executing the undefined script.

通知を受けたプラグイン220は、ユーティリティ230に対し、任意のスクリプト関数の実行を要求する。ユーティリティ230は、Webブラウザ200で実行できる実行要求に変換し、その実行要求をイベントプロセス201へ送る。イベントプロセス201は、その実行要求を受け付け、スクリプトパーサ203に対し、そのスクリプト関数の実行を要求する。   Upon receiving the notification, the plug-in 220 requests the utility 230 to execute an arbitrary script function. The utility 230 converts it into an execution request that can be executed by the Web browser 200, and sends the execution request to the event process 201. The event process 201 accepts the execution request and requests the script parser 203 to execute the script function.

スクリプトパーサ203は、その実行要求を解釈し、その任意のスクリプト関数が、図3に示したシーケンスに基づき設定されていることから、定義済みスクリプトであり、その定義済みスクリプトを実行することができる。なお、その処理結果は、イベントプロセス201を介してUI202に表示することができる。   The script parser 203 interprets the execution request, and since the arbitrary script function is set based on the sequence shown in FIG. 3, it is a defined script and can execute the defined script. . The processing result can be displayed on the UI 202 via the event process 201.

図6は、スクリプトパーサ203が行う処理の流れを示したフローチャートである。この処理は、ステップ600から開始し、まず、スクリプトパーサ203は、ステップ610において、イベントプロセス201からスクリプトの実行要求を受け付ける。次に、ステップ620において、スクリプトパーサ203は、実行要求されたスクリプトがWebブラウザ200に定義されているスクリプトであるか否かを判断する。具体的には、スクリプトパーサ203がそのスクリプトを解釈し、実行することができるか否かにより判断する。定義されているスクリプトである場合、ステップ630へ進み、そのスクリプトを実行し、その後、ステップ660へ進み、その実行を要求したイベントプロセス201に処理の結果として返す戻り値を設定し、ステップ680でこの処理を終了する。この場合の戻り値としては、処理結果のほか、処理が正しく終了したことを示す値を含むことができる。   FIG. 6 is a flowchart showing the flow of processing performed by the script parser 203. This process starts from step 600. First, the script parser 203 accepts a script execution request from the event process 201 in step 610. Next, in step 620, the script parser 203 determines whether or not the script requested to be executed is a script defined in the Web browser 200. More specifically, the script parser 203 determines whether the script can be interpreted and executed. If it is a defined script, the process proceeds to step 630 to execute the script, and then proceeds to step 660 to set a return value to be returned as a processing result to the event process 201 that requested the execution. This process ends. In this case, the return value can include a value indicating that the processing has been completed correctly in addition to the processing result.

一方、定義されていないと判断すると、ステップ640へ進み、スクリプトパーサ203は、プラグインマネージャ210に対し、その未定義スクリプトの実行を要求する。スクリプトパーサ203は、その実行要求を送った後、ステップ650で、プラグインマネージャ210から処理の結果として何らかの値を戻り値として受け取る。プラグインマネージャ210は、そのスクリプトに対応するプラグイン220を探し、対応するプラグイン220が見つからない場合、未定義応答を返し、その他の場合は実行応答として任意の値を返す。したがって、スクリプトパーサ203は、いずれかの値を受け取り、いずれであるか判断する。   On the other hand, if it is determined that it is not defined, the process proceeds to step 640, and the script parser 203 requests the plug-in manager 210 to execute the undefined script. After sending the execution request, the script parser 203 receives some value as a return value from the plug-in manager 210 in step 650. The plug-in manager 210 searches for the plug-in 220 corresponding to the script. If the corresponding plug-in 220 is not found, the plug-in manager 210 returns an undefined response, and otherwise returns an arbitrary value as an execution response. Therefore, the script parser 203 receives one of the values and determines which one it is.

その値が任意の値である場合、ステップ660へ進み、イベントプロセス201へ返す戻り値を設定し、戻り値が未定義応答である場合、ステップ670へ進み、未定義応答として返された「undefined」を設定し、いずれもステップ680でこの処理を終了する。   If the value is an arbitrary value, the process proceeds to step 660 and a return value to be returned to the event process 201 is set. If the return value is an undefined response, the process proceeds to step 670 and “undefined” returned as an undefined response. ”Is set, and in both cases, this processing is terminated at step 680.

図7は、プラグインマネージャ210が行う処理の流れを示したフローチャートである。この処理は、ステップ700から開始し、ステップ710で、プラグインマネージャ210は、スクリプトパーサ203からスクリプトの実行要求を受け取り、実行要求されたスクリプトに対応するプラグイン220が見つかるまで、プラグインマネージャ210が管理する複数のプラグインの各々に対し、順に、スクリプトの実行を要求する。プラグインマネージャ210は、複数のプラグイン220の1つ1つに実行要求を送り、プラグイン220からその実行要求に対する応答を受ける。ステップ720において、プラグインマネージャ210は、その応答が実行応答であるか否かを判断し、実行応答であれば、ステップ740へ進み、この処理を終了する。その後の処理は、プラグイン220で行われるからである。   FIG. 7 is a flowchart showing a flow of processing performed by the plug-in manager 210. This process starts from step 700. In step 710, the plug-in manager 210 receives a script execution request from the script parser 203, and until the plug-in manager 210 corresponding to the requested script is found, the plug-in manager 210. Script execution is requested to each of a plurality of plug-ins managed by. The plug-in manager 210 sends an execution request to each of the plurality of plug-ins 220 and receives a response to the execution request from the plug-in 220. In step 720, the plug-in manager 210 determines whether or not the response is an execution response. If the response is an execution response, the plug-in manager 210 proceeds to step 740 and ends this processing. This is because the subsequent processing is performed by the plug-in 220.

実行応答でない場合、対応するプラグイン220ではないことを示すため、ステップ730へ進み、次のプラグイン220が存在するかを判断する。すなわち、自己が管理するプラグイン220のすべてに対し、スクリプトの実行を要求したかを判断する。まだ要求していないプラグイン220がある場合は、そのプラグインへ要求するために、ステップ710へ戻る。   If it is not an execution response, the process proceeds to step 730 to indicate that it is not the corresponding plug-in 220, and it is determined whether the next plug-in 220 exists. That is, it is determined whether script execution is requested for all plug-ins 220 managed by the self. If there is a plug-in 220 that has not yet been requested, the process returns to step 710 to request the plug-in.

一方、すべてのプラグイン220に対し要求した場合は、次に要求するプラグイン220が存在しないため、ステップ740へ進み、この処理を終了する。具体的にどのようにして対応するプラグイン220を探すかについては後述する。   On the other hand, if all plug-ins 220 have been requested, the next requested plug-in 220 does not exist, so the process proceeds to step 740 and this process is terminated. A specific method of searching for the corresponding plug-in 220 will be described later.

図8は、プラグインマネージャ210およびプラグイン220のクラス構成図の例を示したものである。図8に示す「PluginManager」は、プラグインマネージャ210であり、「Device」、「Scan」、「Print」は、プラグイン220によって提供され、図9に示す未定義スクリプトのオブジェクトに対応するものである。このオブジェクトは、COMオブジェクトである。   FIG. 8 shows an example of a class configuration diagram of the plug-in manager 210 and the plug-in 220. “PluginManager” shown in FIG. 8 is the plug-in manager 210, and “Device”, “Scan”, and “Print” are provided by the plug-in 220 and correspond to the objects of the undefined script shown in FIG. is there. This object is a COM object.

プラグインマネージャ210およびプラグイン220に対応するクラスは、すべてあらゆるCOMインタフェースを呼び出し可能なように設計されたIDispachインタフェースを継承しており、COMによるアクセスが可能とされている。ここで、クラスは、オブジェクトを定義するモデルであり、継承は、クラスの定義を他のクラスに受け継がせることをいう。したがって、図8の矢線で示すように、「PluginManager」、「Device」、「Scan」、「Print」のいずれのオブジェクトも、「IDispatch」で示されたIDispatchインタフェースにアクセスすることができ、あらゆるCOMインタフェースを呼び出すことが可能である。   The classes corresponding to the plug-in manager 210 and the plug-in 220 all inherit the IDispach interface designed to be able to call any COM interface, and can be accessed by COM. Here, a class is a model that defines an object, and inheritance means that the definition of a class is inherited by another class. Therefore, as indicated by the arrows in FIG. 8, any of the objects “PluginManager”, “Device”, “Scan”, and “Print” can access the ID dispatch interface indicated by “IDispatch”. It is possible to call the COM interface.

未定義スクリプトのオブジェクトに対応する上記のオブジェクトは、図9に示されるような階層構造の上位のオブジェクトからIDispatch::invoke()というメソッドにより呼び出され、要求された処理(呼び出されたオブジェクトのメソッドまたは属性アクセス)の結果を呼び出し元に返す。このIDispatch::invoke()は、呼び出すメソッドを識別するための情報と、その呼び出すメソッドに渡す情報とを指定するように構成されており、指定された情報をIDispatchインタフェースを介してCOMインタフェースへ送る。COMインタフェースは、COMオブジェクトの1つのまとまった機能を提供するための複数のメソッドがプログラムコードとして格納されているメモリ上のアドレスを指定するポインタを保持している。このため、COMインタフェースは、上記の指定された情報のうち、呼び出すメソッドを識別するための情報に基づきメソッドを呼び出し、そのメソッドへ渡すべき情報を送り、処理させることができる。処理結果は、COMインタフェースを介して呼び出し元に返すことができる。   The above-mentioned object corresponding to the object of the undefined script is called by a method called IDispatch :: invoke () from a higher-level object as shown in FIG. 9, and requested processing (method of the called object). (Or attribute access) result is returned to the caller. This IDispatch :: invoke () is configured to designate information for identifying a method to be called and information to be passed to the calling method, and sends the designated information to the COM interface via the IDispatch interface. . The COM interface holds a pointer that designates an address on a memory in which a plurality of methods for providing a single function of the COM object are stored as program code. For this reason, the COM interface can call a method based on information for identifying a method to be called out of the specified information, and send and process information to be passed to the method. The processing result can be returned to the caller via the COM interface.

ここで、未定義スクリプトの実行として集約印刷を行う場合について説明する。スクリプトは、例えば「device.print.layout=2up」のように記述されたものであり、この装置では、このスクリプトを以下のようにして処理する。   Here, a case where aggregate printing is performed as execution of an undefined script will be described. The script is described as, for example, “device.print.layout = 2up”, and this device processes this script as follows.

スクリプトパーサ203は、このスクリプトを含むスクリプトの実行要求をイベントプロセス201から受け取ると、このスクリプトを解釈し、定義されていないスクリプトであるため、未定義スクリプトと判断して、図9に示す最上位のPluginManagerクラスに対して「device.print.layout」に「2up」を設定するように要求する。PluginManagerクラスは、図9に示す実施形態では「window」と示されている。このPluginManagerクラスは、実際には上述したようにIDispatch::invoke()によりIDispatchインタフェースを介してCOMインタフェースへアクセスし、COMインタフェースがその下位に属するクラスのオブジェクトへアクセスすることになるが、ここではその処理についての説明は省略する。したがって、PluginManagerクラスは、その下位に属するクラス中からDeviceクラスを探し、Deviceクラスのオブジェクトに対し、「print.layout」に「2up」を設定するように要求する。   When the script parser 203 receives an execution request for a script including this script from the event process 201, the script parser 203 interprets this script and determines that it is an undefined script. Request to set “2up” in “device.print.layout” for PluginManager class. The PluginManager class is indicated as “window” in the embodiment shown in FIG. This PluginManager class actually accesses the COM interface via the ID dispatch interface by IDispatch :: invoke () as described above, and the COM interface accesses the object of the class belonging to the lower level. A description of the process is omitted. Therefore, the PluginManager class searches for the Device class from the subordinate classes, and requests the Device class object to set “2up” in “print.layout”.

次に、Deviceクラスのオブジェクトは、図9に示す「Device」の下位に属するクラスの中からPrintクラスを探し、Printクラスのオブジェクトに対し、「layout」に「2up」を設定するように要求する。   Next, the Device class object searches for the Print class from the classes belonging to the lower level of “Device” shown in FIG. 9 and requests the Print class object to set “2up” to “layout”. .

PluginManagerクラスがDeviceクラスを参照するためにはオブジェクトを識別するための識別情報が必要となるが、識別情報としてプログラムIDを付与し、プラグイン220のインストール、アップデート、アンインストールの際、HDD等の記憶装置に記憶される設定ファイルにこのプログラムIDを記録することで、プラグインマネージャ210とプラグイン220とを関連付けることができる。   In order for the PluginManager class to refer to the Device class, identification information for identifying the object is required, but a program ID is given as identification information, and when installing, updating, or uninstalling the plug-in 220, such as HDD By recording this program ID in the setting file stored in the storage device, the plug-in manager 210 and the plug-in 220 can be associated with each other.

このように複数のプラグイン220の管理を容易にするために、複数のプラグイン220が対応するオブジェクトとして階層構造を形成し、その階層構造の上位のオブジェクトから下位のオブジェクトへと順に未定義スクリプトの実行要求を送信して実行可能であるか否かを問い合わせ、実行可能な下位のオブジェクトに未定義のスクリプトを実行させることができる。また、その実行後、その下位のオブジェクトは、実行結果を上位のオブジェクトへ送り、上位のオブジェクトはプラグインマネージャ210へ送り、プラグインマネージャ210は、Webブラウザ200へ通知することにより、Webブラウザ200がそのスクリプトの実行要求が処理されたことを知ることができる。   In order to facilitate the management of the plurality of plug-ins 220 as described above, a hierarchical structure is formed as an object to which the plurality of plug-ins 220 correspond, and undefined scripts are sequentially arranged from an upper object to a lower object in the hierarchical structure. The execution request can be transmitted to inquire whether or not execution is possible, and an undefined script can be executed on a subordinate object that can be executed. After the execution, the lower object sends the execution result to the higher object, the higher object sends the plug-in manager 210, and the plug-in manager 210 notifies the Web browser 200, thereby the Web browser 200. Can know that the execution request of the script has been processed.

図10は、ユーティリティ230が実装するWebブラウザ200とプラグイン220との間のインタフェースをプログラミング言語で記述したものを例示した図である。図10(a)は、Webブラウザ200への処理要求を記述した例で、「//」は、それ以降の1行がコメントとして扱われ、この処理がWebブラウザへ要求するものであることを示している。また、「command」は、ダイアログ表示要求等の要求の種類を示し、「args」は、ダイアログに表示するメッセージやボタンの文字列等の要求毎に異なる引数を示している。ここで、引数とは、関数やメソッドを呼び出す際にその関数やメソッドに渡す値である。   FIG. 10 is a diagram illustrating an example in which an interface between the Web browser 200 and the plug-in 220 implemented by the utility 230 is described in a programming language. FIG. 10A is an example in which a processing request to the Web browser 200 is described. “//” indicates that the subsequent line is treated as a comment, and this processing is a request to the Web browser. Show. In addition, “command” indicates the type of request such as a dialog display request, and “args” indicates an argument that is different for each request such as a message displayed in the dialog or a character string of a button. Here, the argument is a value passed to the function or method when the function or method is called.

図10(a)の例では、即座にイベントを送信して所定のメッセージおよびボタンを含むダイアログを表示させ、イベントが処理されたときは戻り値として「true」が、処理されないときは「false」が返されるようになっている。これは、SendEventリクエストが送られてきた場合に実行されるため、プラグイン220は、このリクエストを送信することで、Webブラウザ200が更新されたか否かに関係なく、Webブラウザ200に対しダイアログ表示を行わせることができる。   In the example of FIG. 10A, an event is immediately transmitted to display a dialog including a predetermined message and button, and “true” is returned as a return value when the event is processed, and “false” when the event is not processed. Is returned. Since this is executed when a SendEvent request is sent, the plug-in 220 displays this dialog for the Web browser 200 regardless of whether the Web browser 200 has been updated by sending this request. Can be performed.

図10(b)は、Webブラウザ200からの通知を受け付ける処理を記述したものを例示した図である。図10(b)では、Webブラウザ200と連携するために、呼び出すコールバック関数を、関数ポインタ型名(CALLBACK_FUNC)と引数(ID)とを用いて定義している。図10(b)に示す例では、引数として左ボタンが押下された場合のイベントIDと、右ボタンが押下された場合のイベントIDとを渡し、いずれのボタンが押下されたかの通知を受けることが可能とされている。   FIG. 10B is a diagram illustrating a process for receiving a notification from the Web browser 200. In FIG. 10B, in order to cooperate with the Web browser 200, a callback function to be called is defined using a function pointer type name (CALLBACK_FUNC) and an argument (ID). In the example shown in FIG. 10B, an event ID when the left button is pressed and an event ID when the right button is pressed are passed as arguments, and notification of which button is pressed is received. It is possible.

その通知を受けるために、事前に、呼び出すべきコールバック関数の登録を行う必要がある。そのための登録処理が記述されている。この登録処理では、コールバック関数のポインタを追加し、その処理が行われたときは戻り値として「true」が、行われないときは「false」が返されるようになっている。   In order to receive the notification, it is necessary to register a callback function to be called in advance. Registration processing for that purpose is described. In this registration process, a callback function pointer is added, and when the process is performed, “true” is returned as a return value, and when the process is not performed, “false” is returned.

ボタンが押下された通知を受けた後は、さらなる通知は不要である。そこで、その通知を停止するためにコールバック関数のポインタを削除する処理が記述されている。この処理では、上記の通知を受けた後、その通知に使用したコールバック関数のポインタを削除し、その処理が行われたときは戻り値として「true」が、行われないときは「false」が返されるようになっている。   After receiving the notification that the button has been pressed, no further notification is required. Therefore, a process for deleting the callback function pointer in order to stop the notification is described. In this process, after receiving the above notification, the pointer of the callback function used for the notification is deleted. When the process is performed, "true" is returned as the return value, and when it is not performed, "false" Is returned.

これも、プラグイン220からのリクエストにより、Webブラウザ200が更新されたか否かに関係なく、コールバック関数の登録・解除を行うことができる。   Again, the callback function can be registered / released regardless of whether the Web browser 200 has been updated by a request from the plug-in 220.

これまで説明してきた情報処理装置および画像形成装置が行う処理についてまとめると以下のようになる。これら装置は、マークアップ言語で記述された文書データを含むコンテンツデータを処理するためのWebブラウザ200を実装する。Webブラウザ200は、検知したイベントを処理するためにスクリプトの実行要求を生成し、その実行要求が定義済みスクリプトの実行要求であるか否かを判定する。   The processing performed by the information processing apparatus and the image forming apparatus described so far is summarized as follows. These apparatuses are equipped with a Web browser 200 for processing content data including document data described in a markup language. The Web browser 200 generates a script execution request to process the detected event, and determines whether the execution request is a predefined script execution request.

定義済みスクリプトの場合は、スクリプトパーサ203において実行し、定義済みスクリプトでないと判定された場合は、プラグインマネージャ210へその未定義スクリプトの実行要求を送信する。   If it is a predefined script, it is executed by the script parser 203. If it is determined that the script is not a predefined script, an execution request for the undefined script is transmitted to the plug-in manager 210.

プラグインマネージャ210は、その未定義スクリプトの実行要求を、機能拡張のために追加して実装された1以上のプラグイン220へ順に送り、実行可能であるか否かを問い合わせる。そして、それらのプラグイン220の中から、その未定義スクリプトを実行できるプラグイン220を見つけ出し、そのプラグイン220にその未定義スクリプトを実行させる。   The plug-in manager 210 sequentially sends the execution request for the undefined script to one or more plug-ins 220 that are added and mounted for function expansion, and inquires whether or not the execution is possible. Then, a plug-in 220 that can execute the undefined script is found from the plug-ins 220, and the plug-in 220 is caused to execute the undefined script.

プラグイン220は、階層構造を形成しており、階層構造の上位のプラグインから下位のプラグインへ順に未定義スクリプトの実行要求を送って実行可能であるか否かを問い合わせ、実行可能な下位のプラグインにその未定義のスクリプトを実行させることができる。   The plug-in 220 forms a hierarchical structure, and sends an undefined script execution request in order from the upper plug-in to the lower plug-in in the hierarchical structure to inquire whether or not it can be executed. Plug-in can execute the undefined script.

また、プラグイン220からのWebブラウザ200への処理要求を受けて呼び出されるユーティリティ230は、その処理要求に対応しWebブラウザ200が実行可能な実行要求をそのWebブラウザ200へ送り、Webブラウザ200に処理させることができる。   The utility 230 called upon receiving a processing request from the plug-in 220 to the Web browser 200 sends an execution request that can be executed by the Web browser 200 in response to the processing request to the Web browser 200. Can be processed.

本発明では、これらの各処理ステップを含む情報処理方法を提供することができ、また、その方法を実行するためのコンピュータ可読なプログラムや、そのプログラムが記録されたFD、CD、DVD、SDカード等の記録媒体を提供することも可能である。これまで本発明を上述した実施の形態をもって説明してきたが、本発明は上述した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。   In the present invention, an information processing method including each of these processing steps can be provided, a computer-readable program for executing the method, and an FD, CD, DVD, SD card in which the program is recorded. It is also possible to provide such a recording medium. The present invention has been described with the above-described embodiments, but the present invention is not limited to the above-described embodiments, and those skilled in the art will conceive other embodiments, additions, changes, deletions, and the like. It can be changed within the range that can be performed, and any embodiment is included in the scope of the present invention as long as the operation and effect of the present invention are exhibited.

100…PC、110…MFP、120…ネットワーク、130、140…外部サーバ、200…Webブラウザ、201…イベントプロセス、202…UI、203…スクリプトパーサ、210…プラグインマネージャ、220…プラグイン、230…ユーティリティ、240…デバイスSDK DESCRIPTION OF SYMBOLS 100 ... PC, 110 ... MFP, 120 ... Network, 130, 140 ... External server, 200 ... Web browser, 201 ... Event process, 202 ... UI, 203 ... Script parser, 210 ... Plug-in manager, 220 ... Plug-in, 230 ... Utility, 240 ... Device SDK

特開2009−009597号公報JP 2009-009597 A

Claims (11)

マークアップ言語で記述された文書データを含むコンテンツデータを処理するデータ処理部を備える情報処理装置であって、
前記データ処理部が実行可能な定義済みスクリプト以外の1以上の未定義スクリプトを実行するために追加して実装された1以上のスクリプト実行部と、
前記データ処理部が検知したイベントを処理するために生成したスクリプトの実行要求が前記未定義スクリプトの実行要求である場合に、前記データ処理部から当該未定義スクリプトの実行要求を受け付け、当該未定義スクリプトの実行要求を前記1以上のスクリプト実行部へ順に送信して実行可能であるか否かを問い合わせ、実行可能な前記スクリプト実行部に当該未定義スクリプトを実行させるスクリプト実行管理部とを含む、情報処理装置。
An information processing apparatus including a data processing unit that processes content data including document data described in a markup language,
One or more script execution units additionally implemented to execute one or more undefined scripts other than the predefined scripts executable by the data processing unit;
When the execution request of the script generated to process the event detected by the data processing unit is the execution request of the undefined script, the execution request of the undefined script is accepted from the data processing unit, and the undefined A script execution management unit that sends an execution request of a script to the one or more script execution units in order to inquire whether the execution is possible, and causes the executable script execution unit to execute the undefined script. Information processing device.
前記1以上のスクリプト実行部は、階層構造を形成し、前記階層構造の上位のスクリプト実行部から下位のスクリプト実行部へ順に前記未定義スクリプトの実行要求を送信して実行可能であるか否かを問い合わせ、実行可能な前記下位のスクリプト実行部に当該未定義のスクリプトを実行させる、請求項1に記載の情報処理装置。   Whether the one or more script execution units form a hierarchical structure, and can execute an execution request of the undefined script in order from an upper script execution unit to a lower script execution unit in the hierarchical structure. The information processing apparatus according to claim 1, wherein the undefined script is executed by the subordinate script execution unit that can execute the query. 前記スクリプト実行部からの前記データ処理部への処理要求を受けて呼び出され、前記処理要求に対応し前記データ処理部が実行可能な実行要求を当該データ処理部へ送信するインタフェース部をさらに備える、請求項1または2に記載の情報処理装置。   An interface unit that is called in response to a processing request from the script execution unit to the data processing unit, and that transmits an execution request that can be executed by the data processing unit in response to the processing request, to the data processing unit; The information processing apparatus according to claim 1 or 2. マークアップ言語で記述された文書データを含むコンテンツデータを処理するデータ処理部を備え、印刷要求に応じて印刷処理を実行する画像形成装置であって、
前記データ処理部が実行可能な定義済みスクリプト以外の1以上の未定義スクリプトを実行するために追加して実装された1以上のスクリプト実行部と、
前記データ処理部が検知したイベントを処理するために生成したスクリプトの実行要求が前記未定義スクリプトの実行要求である場合に、前記データ処理部から当該未定義スクリプトの実行要求を受け付け、当該未定義スクリプトの実行要求を前記1以上のスクリプト実行部へ順に送信して実行可能であるか否かを問い合わせ、実行可能な前記スクリプト実行部に当該未定義スクリプトを実行させるスクリプト実行管理部とを含む、画像形成装置。
An image forming apparatus that includes a data processing unit that processes content data including document data described in a markup language, and that executes print processing in response to a print request,
One or more script execution units additionally implemented to execute one or more undefined scripts other than the predefined scripts executable by the data processing unit;
When the execution request of the script generated to process the event detected by the data processing unit is the execution request of the undefined script, the execution request of the undefined script is accepted from the data processing unit, and the undefined A script execution management unit that sends an execution request of a script to the one or more script execution units in order to inquire whether the execution is possible, and causes the executable script execution unit to execute the undefined script. Image forming apparatus.
前記1以上のスクリプト実行部は、階層構造を形成しており、前記階層構造の上位のスクリプト実行部から下位のスクリプト実行部へ順に前記未定義スクリプトの実行要求を送信して実行可能であるか否かを問い合わせ、実行可能な前記下位のスクリプト実行部に当該未定義のスクリプトを実行させる、請求項4に記載の画像形成装置。   Whether the one or more script execution units form a hierarchical structure, and can the execution request for the undefined script be transmitted in order from the upper script execution unit to the lower script execution unit in the hierarchical structure and executed? The image forming apparatus according to claim 4, inquiring whether or not, and causing the executable script execution unit to execute the undefined script. 前記スクリプト実行部からの前記データ処理部への処理要求を受けて呼び出され、前記処理要求に対応し前記データ処理部が実行可能な実行要求を当該データ処理部へ送信するインタフェース部をさらに備える、請求項4または5に記載の画像形成装置。   An interface unit that is called in response to a processing request from the script execution unit to the data processing unit, and that transmits an execution request that can be executed by the data processing unit in response to the processing request, to the data processing unit; The image forming apparatus according to claim 4 or 5. マークアップ言語で記述された文書データを含むコンテンツデータを処理するデータ処理部を備える情報処理装置または画像形成装置により実行される情報処理方法であって、
前記データ処理部が、検知したイベントを処理するために生成したスクリプトの実行要求が実行可能な定義済みスクリプトの実行要求であるか否かを判定するステップと、
前記定義済みスクリプトでないと判定された場合に、前記情報処理装置または画像形成装置が備えるスクリプト実行管理部へ当該定義済みスクリプトでない未定義スクリプトの実行要求を送信するステップと、
前記スクリプト実行管理部が、前記未定義スクリプトの実行要求を、1以上の未定義スクリプトを実行するために追加して実装された1以上のスクリプト実行部へ順に送信して実行可能であるか否かを問い合わせ、実行可能な前記スクリプト実行部に当該未定義スクリプトを実行させるステップとを含む、情報処理方法。
An information processing method executed by an information processing apparatus or an image forming apparatus including a data processing unit that processes content data including document data described in a markup language,
Determining whether the execution request of the script generated to process the detected event by the data processing unit is an execution request of a defined script that can be executed;
Transmitting an execution request for an undefined script that is not the defined script to a script execution management unit included in the information processing apparatus or the image forming apparatus when it is determined that the script is not the defined script;
Whether or not the script execution management unit can sequentially execute the execution request for the undefined script by adding the execution request to the one or more script execution units that are added and executed to execute the one or more undefined scripts. And causing the executable script execution unit to execute the undefined script.
前記1以上のスクリプト実行部は、階層構造を形成しており、前記階層構造の上位のスクリプト実行部から下位のスクリプト実行部へ順に前記未定義スクリプトの実行要求を送信して実行可能であるか否かを問い合わせ、実行可能な前記下位のスクリプト実行部に当該未定義のスクリプトを実行させる、請求項7に記載の情報処理方法。   Whether the one or more script execution units form a hierarchical structure, and can the execution request for the undefined script be transmitted in order from the upper script execution unit to the lower script execution unit in the hierarchical structure and executed? The information processing method according to claim 7, inquiring whether or not, and causing the subordinate script execution unit to execute the undefined script. 前記スクリプト実行部からの前記データ処理部への処理要求を受けて呼び出されるインタフェース部が、前記処理要求に対応し前記データ処理部が実行可能な実行要求を当該データ処理部へ送信するステップをさらに含む、請求項7または8に記載の情報処理方法。   A step in which an interface unit that is called in response to a processing request from the script execution unit to the data processing unit transmits an execution request that can be executed by the data processing unit in response to the processing request to the data processing unit; An information processing method according to claim 7 or 8, further comprising: 請求項7〜9のいずれか1項に記載の情報処理方法を実行するためのコンピュータ可読なプログラム。   The computer-readable program for performing the information processing method of any one of Claims 7-9. 請求項10に記載のプログラムが記録された記録媒体。   A recording medium on which the program according to claim 10 is recorded.
JP2010110001A 2010-05-12 2010-05-12 Information processing apparatus, image forming apparatus, information processing method, program, and recording medium Expired - Fee Related JP5464038B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010110001A JP5464038B2 (en) 2010-05-12 2010-05-12 Information processing apparatus, image forming apparatus, information processing method, program, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010110001A JP5464038B2 (en) 2010-05-12 2010-05-12 Information processing apparatus, image forming apparatus, information processing method, program, and recording medium

Publications (2)

Publication Number Publication Date
JP2011238091A true JP2011238091A (en) 2011-11-24
JP5464038B2 JP5464038B2 (en) 2014-04-09

Family

ID=45325987

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010110001A Expired - Fee Related JP5464038B2 (en) 2010-05-12 2010-05-12 Information processing apparatus, image forming apparatus, information processing method, program, and recording medium

Country Status (1)

Country Link
JP (1) JP5464038B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609267A (en) * 2012-02-16 2012-07-25 深圳市酷开网络科技有限公司 Plug-in unit management method based on Android browser and system therefor
WO2015021860A1 (en) * 2013-08-15 2015-02-19 Tencent Technology (Shenzhen) Company Limited Method and apparatus for loading rendering engine
CN108170688A (en) * 2016-12-06 2018-06-15 北京奇虎科技有限公司 Automate the method and device of logging data
JP7478633B2 (en) 2020-09-15 2024-05-07 シャープ株式会社 Image processing device and image processing method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09134291A (en) * 1995-11-09 1997-05-20 Fujitsu Kansai Commun Syst Ltd Distributed application program execution system and distributed application
JP2002041309A (en) * 2000-06-16 2002-02-08 Microsoft Corp System for interactive communication among objects in distributed computer environment, its method and interactive distributed component object model
JP2002538516A (en) * 1998-12-24 2002-11-12 コンピューター アソシエイツ シンク インコーポレーテッド Method and apparatus for extending the function of a dynamic command with an intelligent agent
JP2009009597A (en) * 2008-08-18 2009-01-15 Canon Inc Embedding device and its control method
JP2009169953A (en) * 2008-01-11 2009-07-30 Nhn Corp Web launching system and web launching method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09134291A (en) * 1995-11-09 1997-05-20 Fujitsu Kansai Commun Syst Ltd Distributed application program execution system and distributed application
JP2002538516A (en) * 1998-12-24 2002-11-12 コンピューター アソシエイツ シンク インコーポレーテッド Method and apparatus for extending the function of a dynamic command with an intelligent agent
JP2002041309A (en) * 2000-06-16 2002-02-08 Microsoft Corp System for interactive communication among objects in distributed computer environment, its method and interactive distributed component object model
JP2009169953A (en) * 2008-01-11 2009-07-30 Nhn Corp Web launching system and web launching method
JP2009009597A (en) * 2008-08-18 2009-01-15 Canon Inc Embedding device and its control method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609267A (en) * 2012-02-16 2012-07-25 深圳市酷开网络科技有限公司 Plug-in unit management method based on Android browser and system therefor
WO2015021860A1 (en) * 2013-08-15 2015-02-19 Tencent Technology (Shenzhen) Company Limited Method and apparatus for loading rendering engine
CN108170688A (en) * 2016-12-06 2018-06-15 北京奇虎科技有限公司 Automate the method and device of logging data
CN108170688B (en) * 2016-12-06 2023-10-31 北京奇虎科技有限公司 Method and device for automatically inputting data
JP7478633B2 (en) 2020-09-15 2024-05-07 シャープ株式会社 Image processing device and image processing method

Also Published As

Publication number Publication date
JP5464038B2 (en) 2014-04-09

Similar Documents

Publication Publication Date Title
JP5159711B2 (en) Embedded device and its status display control method
KR101456624B1 (en) Image forming apparatus, and web application install method
JP5447030B2 (en) Electronic device, information processing method, and information processing program
JP5884542B2 (en) Apparatus, information processing system, information processing method, and information processing program
JP5440252B2 (en) Information processing apparatus, external apparatus, information processing system, information processing method, and program
US8982386B2 (en) Device, charging method, and system
JP2004318842A (en) Webpage generation device, embedding device, method for control of webpage generation, webpage generation program, and recording medium
JP5458708B2 (en) Image processing apparatus, display control method, and display control program
US8346852B2 (en) Apparatus and method for updating displayed web page
JP6772578B2 (en) Information processing system, information processing device, and information processing method
US20130219260A1 (en) Instrument, information processing system, and information processing method
JP2014197827A (en) Information processing system, information processing device, information processing method and information processing program
JP5464038B2 (en) Information processing apparatus, image forming apparatus, information processing method, program, and recording medium
US9110962B2 (en) Data providing apparatus for implementing script, electronic apparatus for implementing script, data processing system for implementing script, and method of data processing for implementing script
JP2011086142A (en) Image forming apparatus and program controlling method
JP2004303218A (en) Information providing device and information display device
JP2011141684A (en) Image forming apparatus, service provision method, program and storage medium
JP2002251261A (en) Picture outputting device and information processor and data processing method and storage medium
JP5471277B2 (en) Image forming apparatus and program operation method
JP7500987B2 (en) Information processing device, information processing system, and program
JP6819386B2 (en) Image processing equipment, systems and information processing methods
JP5630556B2 (en) Information processing apparatus, external apparatus, information processing system, information processing method, and program
JP2012135907A (en) Image forming apparatus, information processing apparatus, and information processing program
JP2004326141A (en) Image processor and program
JP4159869B2 (en) Information providing apparatus, information providing method, information providing system, and information providing program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131022

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131126

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: 20131224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140106

LAPS Cancellation because of no payment of annual fees