JP2010016797A - Image processing apparatus - Google Patents
Image processing apparatus Download PDFInfo
- Publication number
- JP2010016797A JP2010016797A JP2009055699A JP2009055699A JP2010016797A JP 2010016797 A JP2010016797 A JP 2010016797A JP 2009055699 A JP2009055699 A JP 2009055699A JP 2009055699 A JP2009055699 A JP 2009055699A JP 2010016797 A JP2010016797 A JP 2010016797A
- Authority
- JP
- Japan
- Prior art keywords
- plug
- image processing
- test
- processing apparatus
- 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
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
- Facsimiles In General (AREA)
Abstract
Description
本発明は、画像処理に関するアプリケーションの機能を拡張するためのプラグインを追加する際に、当該プラグインが備えるインタフェースの仕様について適切か否かの判定を行う技術に関する。 The present invention relates to a technique for determining whether or not a specification of an interface included in a plug-in is appropriate when a plug-in for extending an application function related to image processing is added.
近年、パーソナルコンピュータおよびワークステーションなどの装置だけでなく、様々な装置に高性能なAPI(Application Program Interface)を有するOS(Operating System)が採用されている。例えば、コピー、プリンタ、スキャナ、FAX、またはドキュメントサーバなどの機能を集約した複合機(MFP)などの装置にも、このようなOSが採用されている。
APIの性能が低かった頃は、これらの装置の機能拡張を行い、または応用的な処理を行うためのプログラムを作成することは難しく、手間が掛かった。装置の構造を理解し、機械語などの言語を用いてプログラムをコーディングしなければならなかったからである。
In recent years, an OS (Operating System) having a high-performance API (Application Program Interface) has been adopted not only for devices such as personal computers and workstations but also for various devices. For example, such an OS is also adopted in an apparatus such as a multifunction peripheral (MFP) that integrates functions such as a copy, a printer, a scanner, a FAX, or a document server.
When the performance of the API was low, it was difficult and time-consuming to create a program for expanding the functions of these devices or performing an application process. This is because it was necessary to understand the structure of the device and code the program using a language such as machine language.
しかし、高性能なAPIが採用されるようになってからは、予め用意されているAPI関数をコールするだけで種々の機能を呼び出して処理を行うことができるようになった。これにより、従来よりも容易にプログラミングが行われるようになった。
したがって、今後、これらの装置の機能拡張を行いまたは応用的な処理を行うためのプログラム、およびこれらのプログラムを作成し提供するサービス提供者が増えると予測される。このことは、ユーザにとって、装置をより便利に使用することができるようになるという利点があるが、その一方で、不正な処理を実行しユーザに損害をもたらす欠陥のあるプログラムや悪意のあるプログラムが流通しやすくなるという問題点もある。
However, since high-performance APIs have been adopted, various functions can be called up and processed simply by calling API functions prepared in advance. As a result, programming is easier than before.
Therefore, in the future, it is expected that the number of programs for performing function expansion or application processing of these apparatuses and service providers that create and provide these programs will increase. This has the advantage that the user can use the device more conveniently, but on the other hand, a defective program or malicious program that performs unauthorized processing and causes damage to the user. There is also a problem that becomes easier to distribute.
そこで、上記装置でプログラムを実行する際に、何らかのチェックを行う必要があるものと考えられるが、特許文献1では、MFPにプログラムを追加する際に、そのプログラムの作成者の情報に基づいて当該プログラムの実行制御を行う技術が公開されている。この技術においては、プログラム実行時に、該プログラムの作成者にアクセス許可されていないAPI呼び出しを行うと、そのAPI呼び出しが禁止される。
Therefore, it is considered that some kind of check needs to be performed when the program is executed by the above apparatus. However, in
しかし、上記技術においては、プログラムの作成者情報を登録する必要があり、未登録の作成者により作成されたプログラムには適用できないという問題点がある。
また、上記技術においては、プログラムの作成者が正当か否かに基づいてプログラムの実行制御はできるものの、装置に追加するプログラム自体に問題が無いか否かをチェックすることができないという問題点がある。
However, the above technique has a problem that it is necessary to register the creator information of the program, and it cannot be applied to a program created by an unregistered creator.
Further, in the above technique, although the execution control of the program can be controlled based on whether or not the creator of the program is valid, there is a problem that it is not possible to check whether or not there is a problem in the program added to the apparatus. is there.
そこで、本発明では、上記問題点に鑑み、画像処理に係るアプリケーションの機能を拡張するプログラムを追加する際に、該プログラム自体に問題がないか否かの確認を行い、信頼性の高いプログラムのみを追加することにより、堅牢なシステムを有する画像処理装置を提供することを目的とする。 Therefore, in the present invention, in view of the above problems, when adding a program for expanding the function of an application related to image processing, it is confirmed whether or not there is a problem in the program itself, and only a highly reliable program is checked. An object of the present invention is to provide an image processing apparatus having a robust system.
開示の画像処理装置の一形態では、画像処理に係るアプリケーションの機能を拡張するためのプラグインを追加可能な画像処理装置であって、プラグインが追加される際に、該プラグインの備えるインタフェースに関する仕様が、対応するアプリケーションの要求する該インタフェースに関する仕様と一致するか否かの判定を行うプラグインテスト手段を有することを特徴とする。 According to an embodiment of the disclosed image processing apparatus, an image processing apparatus to which a plug-in for extending an application function related to image processing can be added, and when the plug-in is added, the interface included in the plug-in is provided. And plug-in test means for determining whether or not the specifications related to the specifications related to the interface required by the corresponding application.
本発明では、画像処理に係るアプリケーションの機能を拡張するプログラムを追加する際に、該プログラム自体に問題がないか否かの確認を行い、信頼性の高いプログラムのみを追加することにより、堅牢なシステムを有する画像処理装置を提供することができる。 In the present invention, when adding a program that expands the function of an application related to image processing, it is confirmed whether or not there is a problem with the program itself, and only a highly reliable program is added, thereby ensuring robustness. An image processing apparatus having the system can be provided.
図面を参照しながら、本発明を実施するための最良の形態について説明する。
(本発明に係る画像処理装置のソフトウェア構成)
図1は、本発明の実施の形態における複合機のソフトウェア構成例を示す図である。ここで、複合機とは、プリンタ、コピー、スキャナ、又はFAX等の複数の機能を一台の筐体において実現する画像処理装置をいう。
The best mode for carrying out the present invention will be described with reference to the drawings.
(Software configuration of image processing apparatus according to the present invention)
FIG. 1 is a diagram illustrating a software configuration example of a multifunction machine according to an embodiment of the present invention. Here, the multifunction peripheral refers to an image processing apparatus that realizes a plurality of functions such as a printer, a copy, a scanner, or a FAX in a single casing.
図1で示すように、複合機1におけるソフトウェアは、ユーザインタフェース層10、コントロール層20、アプリケーションロジック層30、デバイスサービス層40及びデバイス制御層50より構成される。なお、図中における各層の上下関係は、層間の呼び出し関係に基づいている。すなわち、基本的に図中において上にある層が下の層を呼び出す。
As shown in FIG. 1, the software in the
ユーザインタフェース層10は、機能(例えば、コピー、印刷、スキャン、FAX送信)の実行要求を受け付けるための機能が実装されている部分であり、例えば、通信サーバ部11及びローカルUI(User Interface)部12が含まれる。通信サーバ部11は、例えば、非図示のクライアントPC(Personal Computer)からネットワーク経由で要求を受け付ける。ローカルUI部12は、例えば、非図示のオペレーションパネルを介して入力される要求を受け付ける。ユーザインタフェース層10において受け付けられた要求は、コントロール層20に伝えられる。
The
コントロール層20は、要求された機能を実現するための処理を制御するための機能が実装されている部分である。具体的には、要求された機能に応じて、アプリケーションロジック層30における各フィルタを接続し、接続されたフィルタに基づいて機能の実行を制御する。
コントロール層20は、例えば、リクエスト管理部21、プラグイン管理部22を有する。リクエスト管理部21は、要求されたジョブに応じて、アプリケーションロジック層30が有する各フィルタを接続し、接続されたフィルタに基づいてジョブの実行を制御する。プラグイン管理部22は、複合機1に実装されるジョブを実行するための手段等の物理的なアドレスと、手段の動作とを管理する。なお、本実施の形態においては、プラグイン管理部22が管理する「プラグイン」とは、複合機1が有する基本機能に対して新たに追加される機能に対応するプログラム又はデバイス、及び、複合機1が有する基本機能に対応するプログラム又はデバイスを含む。すなわち、プラグイン管理部22は、複合機1が有する基本機能及び追加機能に対応するプログラム又はデバイス等の物理的なアドレス、及び、それらの動作を管理する手段である。
なお、本実施の形態において「複合機1の機能」とは、複合機1がユーザに対して提供する一つのまとまった単位(要求が入力されて最終的な出力が得られるまで)のサービスと同義であり、ソフトウェア的には一つのまとまった単位のサービスを提供するアプリケーションと同義である。
The
The
In the present embodiment, the “function of the
アプリケーションロジック層30は、それぞれが複合機1において提供される機能の一部を実現する部品群が実装されている部分である。すなわち、アプリケーションロジック層30における部品を組み合わせることにより一つの機能が実現される。本実施の形態では、各部品を「フィルタ」と呼ぶ。これは、複合機1のソフトウェアアーキテクチャが「パイプ&フィルタ」と呼ばれる考え方に基づくことによる。
The
図2は、パイプ&フィルタの概念を示すための図である。図2においては、「F」はフィルタを示し、「P」はパイプを示す。図中に示されるように、各フィルタはパイプによって接続される。フィルタは、入力されたデータに対して変換を施し、その結果を出力する。パイプは、フィルタから出力されたデータを次のフィルタに伝達する。 FIG. 2 is a diagram for illustrating the concept of pipes and filters. In FIG. 2, “F” indicates a filter, and “P” indicates a pipe. As shown in the figure, each filter is connected by a pipe. The filter converts the input data and outputs the result. The pipe transmits the data output from the filter to the next filter.
すなわち、本実施の形態における複合機1では、各機能をドキュメント(データ)に対する「変換」の連続として捉える。複合機の各機能は、ドキュメントの入力、加工、及び出力によって構成されるものとして一般化することができる。そこで、「入力」、「加工」、及び「出力」を「変換」として捉え、一つの「変換」を実現するソフトウェア部品がフィルタとして構成される。入力を実現するフィルタを特に「入力フィルタ」という。また、加工を実現するフィルタを特に「加工フィルタ」という。更に、出力を実現するフィルタを特に「出力フィルタ」という。なお。各フィルタは独立しており、フィルタ間における依存関係(呼び出し関係)は基本的には存在しない。したがって、フィルタ単位で追加(インストール)又は削除(アンインストール)が可能とされている。
That is, in the
図1において、アプリケーションロジック層30には、入力フィルタとして、読取フィルタ301、メール受信フィルタ302、FAX受信フィルタ303、PC文書受信フィルタ304が含まれている。
読取フィルタ301は、スキャナによる画像データの読み取りを制御し、読み取られた画像データを出力する。メール受信フィルタ302は、電子メールを受信し、当該電子メールに含まれているデータを出力する。FAX受信フィルタ303は、FAX受信を制御し、受信されたデータを出力する。PC文書受信フィルタ304は、非図示のクライアントPCから印刷データを受信し、受信された印刷データを出力する。
In FIG. 1, the
The reading
図1において、アプリケーションロジック層30には、加工フィルタとして、文書加工フィルタ311、文書変換フィルタ312が含まれている。
文書加工フィルタ311は、入力されたデータに所定の画像変換処理(集約、拡大、又は縮小等)を施し、出力する。文書変換フィルタ312は、レンダリング処理を実行する。すなわち、入力されたPostScriptデータをビットマップデータに変換して出力する。
In FIG. 1, the
The
図1において、アプリケーションロジック層30には、出力フィルタとして、印刷フィルタ321、メール送信フィルタ322、FAX送信フィルタ323、PC文書送信フィルタ324が含まれている。
印刷フィルタ321は、入力されたデータをプロッタに出力(印刷)させる。メール送信フィルタ322は、入力されたデータを電子メールに添付して送信する。FAX送信フィルタ323は、入力されたデータをFAX送信する。PC文書送信フィルタ324は、入力されたデータをクライアントPCに送信する。
In FIG. 1, the
The
また、アプリケーションロジック層30は、ビルトインテスト34を含む。ビルトインテスト34は、上記で説明したフィルタ又はアクティビティの機能を拡張するプラグイン(プログラム)を複合機1に追加する際に、該プラグインの備えるインタフェース(I/F)が適切か否かをチェックする。また、ビルトインテスト34は、後述するテスト内容抽出手段120及びプラグインテスト手段130に該当し、プラグインテストテーブル200を含むものである。
The
デバイスサービス層40は、アプリケーションロジック層30における各フィルタから共通に利用される下位機能が実装されている部分であり、例えば、画像パイプ41及びデータ管理部42が含まれる。画像パイプ41は、上述したパイプの機能を実現する。すなわち、或るフィルタからの出力データを次のフィルタに伝達する。データ管理部42は、各種のデータベースを表現する。例えば、ユーザ情報が登録されたデータベースや、文書又は画像データ等が蓄積されるデータベース等が相当する。
The device service layer 40 is a portion in which lower functions commonly used by the filters in the
デバイス制御層50は、デバイス(ハードウェア)を制御するドライバと呼ばれるプログラムモジュール群が実装されている部分であり、例えば、スキャナ制御部51、プロッタ制御部52、メモリ制御部53、電話回線制御部54、及びネットワーク制御部55が含まれる。各制御部は、当該制御部の名前に付けられているデバイスを制御する。
The
フィルタについて更に詳しく説明する。図3は、フィルタの構成要素を説明するための図である。図3に示されるように、各フィルタは、フィルタ設定用UI、フィルタロジック、フィルタ固有下位サービス及び永続記憶領域情報により構成される。
フィルタ設定用UIは、フィルタの実行条件を設定させるための画面をオペレーションパネルに表示させるプログラムである。例えば、入力フィルタの一つである読取フィルタであれば、解像度、濃度、画像種別を設定する画面が相当する。なお、オペレーションパネルの表示がHTML(HyperText Markup Language)データや、スクリプトに基づいて行われ得ることに鑑みれば、フィルタ設定用UIはHTMLデータやスクリプトであっても良い。
The filter will be described in more detail. FIG. 3 is a diagram for explaining the components of the filter. As shown in FIG. 3, each filter includes a filter setting UI, filter logic, filter-specific lower services, and permanent storage area information.
The filter setting UI is a program that causes the operation panel to display a screen for setting filter execution conditions. For example, in the case of a reading filter that is one of input filters, a screen for setting resolution, density, and image type corresponds. In view of the fact that the operation panel can be displayed based on HTML (HyperText Markup Language) data or a script, the filter setting UI may be HTML data or a script.
フィルタロジックは、フィルタの機能を実現するためのロジックが実装されたプログラムである。例えば、読取フィルタであれば、スキャナによる原稿読み取り制御のためのロジックが相当する。
フィルタ固有下位サービスは、フィルタロジックを実現するために必要な下位機能(ライブラリ)である。例えば、読取フィルタであれば、スキャナを制御するための機能が相当する。
永続記憶領域情報は、フィルタに対する設定情報(例えば、実行条件のデフォルト値)等、不揮発性メモリに保存する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、フィルタのインストール時にデータ管理部42に登録される。
The filter logic is a program in which logic for realizing the filter function is mounted. For example, in the case of a reading filter, the logic for document reading control by the scanner corresponds.
The filter-specific lower service is a lower function (library) necessary for realizing the filter logic. For example, a reading filter corresponds to a function for controlling the scanner.
The permanent storage area information corresponds to a schema definition of data that needs to be saved in a nonvolatile memory, such as setting information for a filter (for example, a default value of an execution condition). The schema definition is registered in the
図4は、本実施の形態の複合機における各機能(アプリケーション)を実現するためのフィルタの組み合わせの例を示す図である。
例えば、コピー機能は、読取フィルタ301と印刷フィルタ321とを接続することにより実現される。読取フィルタ301によって、原稿から読み取られた画像データを印刷フィルタ321によって印刷すれば良いからである。なお、コピー機能に付随する、集約、拡大、縮小等の加工が要求された場合には、これらの加工を実現する文書加工フィルタ311が読取フィルタ301と印刷フィルタ321の間に挿入される。
FIG. 4 is a diagram illustrating an example of a combination of filters for realizing each function (application) in the multifunction peripheral according to the present embodiment.
For example, the copy function is realized by connecting the
プリンタ機能(クライアントPCからの印刷機能)は、PC文書受信フィルタ304と文書変換フィルタ312と印刷フィルタ321とを接続することにより実現される。スキャンto email機能(スキャンした画像データを電子メールで転送する機能)は、読取フィルタ301とメール送信フィルタ322とを接続することにより実現される。FAX送信機能は、読取フィルタ301とFAX送信フィルタ323とを接続することにより実現される。FAX受信機能は、FAX受信フィルタ303と印刷フィルタ321とを接続することにより実現される。
The printer function (print function from the client PC) is realized by connecting the PC
また、アプリケーションロジック層30は、コピーアクティビティ31、プリンタアクティビティ32、マルチ文書アクティビティ33を含む。ここで、アクティビティとは、予め固定的に定義されたフィルタの組み合わせによって、一つの機能(複合機1がユーザに対して提供する一つのまとまった単位のサービス又はアプリケーション)を実現するソフトウェアである。コピーのように頻繁に利用する機能については、毎回フィルタの選択によってユーザが実行指示を行うのは煩雑であるため、予めフィルタの組み合わせを定義することで、この煩雑さを解消するために用意されるものである。
コピーアクティビティ31は、読取フィルタ301と文書加工フィルタ311と印刷フィルタ321との組み合わせにより、コピー機能(コピーアプリケーション)を実現するアクティビティである。
プリンタアクティビティ32は、PC文書受信フィルタ304と文書変換フィルタ312と印刷フィルタ321との組み合わせにより、印刷機能(プリンタアプリケーション)を実現するアクティビティである。
マルチ文書アクティビティ33は、入力フィルタ、加工フィルタ、出力フィルタのそれぞれについて、自由な組み合わせが可能なアクティビティである。
なお、各アクティビティは独立しており、各アクティビティ間における依存関係(呼び出し関係)は基本的には存在せず、したがって、アクティビティ毎に追加(インストール)、削除(アンインストール)が可能である。
The
The
The
The
Each activity is independent, and there is basically no dependency relationship (call relationship) between the activities. Therefore, addition (installation) and deletion (uninstallation) can be performed for each activity.
(本実施の形態に係る複合機1の動作原理)
図5を用いて、本発明の画像処理装置である複合機1の動作原理について説明する。図5は複合機1の動作原理を示した図である。
図5で示すように、複合機1は、プラグイン登録手段110、テスト内容抽出手段120、プラグインテスト手段130、プラグイン削除手段140、テスト実行選択手段150、テスト内容変更手段160、画像処理テスト手段170、画像処理手段180、記憶装置83を有する。また、複合機1とダウンロードサーバ300とは、通信ネットワークで接続されているものとし、該通信ネットワークは、有線通信ネットワークであっても無線通信ネットワークであっても良い。
(Operation Principle of
The operation principle of the
As shown in FIG. 5, the
画像処理手段180は、複合機1が行う一般的な画像処理を実行し、例えば、コピー処理、プリンタ処理、FAX処理等を実行する。
The
記憶装置83は、画像処理に係るアプリケーションの機能を拡張するためのプラグイン190、プラグイン190を追加する際のテスト内容を規定するプラグインテストテーブル200、複合機1の基本性能を規定する基本機能確認基準210を保持している。
画像処理に係るアプリケーションは、上記説明におけるアプリケーションロジック層30を構成する入力フィルタ(読取フィルタ301等)、加工フィルタ(文書加工フィルタ311等)、出力フィルタ(印刷フィルタ321等)、各アクティビティ31、32、33、ビルトインテスト34とする形態であっても良い。
The
An application relating to image processing includes an input filter (reading
図6、7を用いて、上記画像処理に係るアプリケーションを機能拡張するためのプラグイン190について説明することとし、ここでは、複合機1が有するスキャナ89を用いて、3枚の原稿を読み取る処理を例にして説明を行う。この場合、追加するプラグイン190によって機能拡張されるアプリケーションは、読取フィルタ301となる。
図6で示すように、機能拡張プラグイン190を複合機1に追加する前の環境では、ローカルUI部12から受け付けられた要求「スキャン実行」は読取フィルタ301に伝達され、読取フィルタ301は当該要求に従いスキャナ89に原稿を読み取らせる。そして、スキャナ89は原稿を1枚読み取る毎に、スキャンを実行した旨の信号「スキャン実行イベント(進捗)」を読取フィルタ301に通知し、読取フィルタ301は当該信号をローカルUI部12へ通知する処理を行う。
A plug-in 190 for extending the function of the application relating to the image processing will be described with reference to FIGS. 6 and 7. Here, a process of reading three originals using the
As shown in FIG. 6, in the environment before adding the function extension plug-in 190 to the
一方、図7で示すように、機能拡張プラグインを複合機に追加した後の環境でも、ローカルUI部12から受け付けられた要求「スキャン実行」は読取フィルタ301に伝達され、読取フィルタ301は当該要求に従いスキャナ89に原稿を読み取らせる。ただし、スキャナ89が原稿を1枚読み取る毎に読取フィルタ301に通知する信号「スキャン実行イベント(進捗)」は、一旦機能拡張プラグイン190に通知され、当該通知をトリガーとして機能拡張プラグイン190による所定の処理が行われた後、読取フィルタ301は当該信号をローカルUI部12へ通知する。
ここで、機能拡張プラグイン190による所定の処理は、スキャナ89が原稿を読み取った時刻や処理実行(ここでは、スキャン実行)を要求したユーザのIDなどの履歴情報を記録する処理(ログを残す処理)であっても良いし、機能拡張プラグイン190において予め定める特定のイベントが発生したと通知された場合に、スキャナ89による原稿の読取処理を停止、再開、キャンセルさせる処理であっても良い。つまり、読取フィルタ301における処理に関連する処理であれば良い。
On the other hand, as shown in FIG. 7, even in the environment after adding the function expansion plug-in to the multifunction peripheral, the request “scan execution” received from the
Here, the predetermined processing by the function extension plug-in 190 is processing (recording a log) that records history information such as the time when the
また、図8を用いて、プラグインテストテーブル200について説明する。図8は、機能拡張のためのプラグインを複合機1に追加する際に、当該プラグインに対し確認すべき項目の一例であり、機能拡張の対象となるアプリケーション(図8では、フィルタ)毎に、必要なインタフェース(以後、I/F:InterFace)、当該I/Fに関する引数の個数、及び当該I/Fに関する引数の型が定められている。例えば、図7で説明した例のように、読取フィルタ301の機能を拡張するプラグイン190を複合機1に追加する際に、追加するプラグイン190が備えるべきI/Fは「スキャンイベント受取」であり、当該I/F「スキャンイベント受取」に関する引数の個数は1つで、該I/F「スキャンイベント受取」に関する引数の型は「Object型」であることを要求される。
The plug-in test table 200 will be described with reference to FIG. FIG. 8 shows an example of items to be confirmed for a plug-in when a plug-in for function expansion is added to the
ここで、プラグインテストテーブル200において、必要なI/Fは1つであっても複数であっても良く、また、各I/Fに関する引数の個数は1つであっても複数であっても良い。さらに、各I/Fに関する引数の型は、Object型であっても他の型であっても良い。
また、図8において、機能拡張される対象のアプリケーションをフィルタとしているが、該アプリケーションはアクティビティであっても良く、他のアプリケーションであっても良い。
Here, in the plug-in test table 200, one or a plurality of I / Fs may be necessary, and the number of arguments related to each I / F may be one or a plurality. Also good. Furthermore, the type of an argument regarding each I / F may be an Object type or another type.
In FIG. 8, the application whose function is to be expanded is used as a filter. However, the application may be an activity or another application.
また、基本機能確認基準210は、複合機1において画像処理を行った場合に、当該画像処理が最低限満足すべき基準であり、例えば、スキャナ89で読み取られた画像品質やプロッタ90で印刷された画像品質等に関する機能性基準、コピーやFAX等の画像処理に要する時間や当該画像処理に関するリソース消費量(メモリリーク、GC、UIの応答時間等)に関する非機能性基準を含むものであっても良い。
The basic function confirmation standard 210 is a standard that the image processing should satisfy at least when the
プラグイン登録手段110は、ダウンロードサーバ300から、画像処理に係るアプリケーションの機能を拡張するためのプラグイン190をダウンロード(取得)し、当該プラグイン190を記憶装置83に記録する。
また、プラグイン登録手段110は、後述するプラグインテスト手段130の判定に基づいて、画像処理手段180による処理においてプラグイン190を利用できる状態にする。ここで、プラグイン190を利用できる状態とは、プラグイン管理部22にプラグイン190が登録された状態である。一方で、プラグイン登録手段110は、テスト実行選択手段150の決定により、プラグインテスト手段130による処理が行われない場合についても、画像処理手段180による処理においてプラグイン190を利用できる状態にする。
The plug-in
Further, the plug-in
テスト内容抽出手段120は、プラグイン登録手段110により取得されたプラグイン190がどのアプリケーション(フィルタ、アクティビティ等)に対する機能拡張プラグインなのかを判断し、この判断結果と図8で示すようなプラグインテーブル200とを照合し、当該プラグイン190に関して確認すべき項目を抽出する。例えば、プラグイン登録手段110により取得されたプラグイン190が読取フィルタ301に対するプラグインであると判断した場合、テスト内容抽出手段190は、図8で示すプラグインテストテーブル200において読取フィルタ301を検索し、読取フィルタ301に必要なI/Fは「スキャンイベント受取」であり、「スキャンイベント受取」に必要な引数の個数は「1つ」であり、「スキャンイベント受取」に必要な引数の型は「Object型」であるという確認すべき項目を抽出する。
The test
プラグインテスト手段130は、テスト内容抽出手段120により抽出される確認項目に基づいて、プラグイン190の備えるI/Fの仕様を確認する。具体的には、プラグイン190の備えるI/Fに関して、テスト内容抽出手段120により抽出される必要なI/Fを備えているか否か、テスト内容抽出手段120により抽出される引数の個数と一致するか否か、テスト内抽出手段120により抽出される引数の型と一致するか否かについて、それぞれ判定を行う。例えば、プラグインテスト手段130は、プラグイン190(実行オブジェクト)に対して、テスト内容抽出手段120により抽出される必要なI/Fを指定し、リフレクション機能を使用して取得を行い、プラグイン190が必要なI/Fを有するか否かを判定する。そして、プラグインテスト手段130は、上記で取得したI/Fに対して、引数の数を取得し、テスト内容抽出手段120により抽出される引数の数と一致するか否かを判定する。さらに、プラグインテスト手段130は、上記で取得したI/Fに対して、引数の型を取得し、テスト内容抽出手段120により抽出される引数の型と一致するか否かを判定する。このようにして、適切なI/Fの未実装を防止し、プログラムをバーションアップする場面で起こりがちなI/Fの不整合等による複合機1の動作不良を防止することができる。
The plug-in test means 130 confirms the I / F specifications of the plug-in 190 based on the confirmation items extracted by the test content extraction means 120. Specifically, regarding the I / F included in the plug-in 190, whether or not the necessary I / F extracted by the test
また、プラグインテスト手段130は、プラグイン190の備えるI/Fに関して、応答時間を計測し、該応答時間が所定の時間内であるか否かを判定する。具体的には、プラグインテスト手段130は、プラグイン190(実行オブジェクト)に対して、テスト内容抽出手段120により抽出される必要なI/Fを指定し、リフレクション機能を使用して取得を行った後、該取得したI/Fの応答時間を計測し、この計測した応答時間が所定の時間内であるか否かを判定する。ここで、I/Fの応答時間は、該I/Fに何らかの問合せを行った時刻と、該問合せに対して何らかの応答があった時刻との時刻差である。障害として発見することが難しいタイムアウトによるスレッドの不正処理等を防止することができる。
Further, the plug-in test means 130 measures the response time for the I / F included in the plug-in 190, and determines whether or not the response time is within a predetermined time. Specifically, the plug-in
プラグイン削除手段140は、プラグインテスト手段130により、プラグイン190の備えるI/Fの仕様と、テスト内容抽出手段120により抽出される仕様とが一致しないと判定された場合、又は、該I/Fの応答時間が所定の時間内でないと判定された場合に、プラグイン190を記憶装置83から削除する。未知なコンポーネントが正しい拡張ルールに従っているかを、プラグイン追加時にリアルタイムで確認することで、より信頼性の高いものしか追加させない堅牢なシステムを構築することができる。
The plug-in
テスト実行選択手段150は、テスト内容抽出手段120及びプラグインテスト手段130による処理を実行するか否かに関するユーザの選択を受け付け、該選択に基づいて、テスト内容抽出手段120及びプラグインテスト手段130による処理を実行するか否かを決定する。すなわち、テスト内容抽出手段120及びプラグインテスト手段130による処理を実行するとユーザが選択すればこれらの手段による処理が実行され、反対に、実行しないとユーザが選択すればこれらの手段による処理は実行されない。テスト実行の有無に関する選択をユーザに委ね、不要なテストを行わないことで、テスト実行時間の削減することができ、または、記憶装置の資源を有効活用することができる。
The test
テスト内容変更手段160は、ダウンロードサーバ300から、図8で示すようなプラグインテストテーブル200をダウンロード(取得)し、該プラグインテストテーブル200を記憶装置83に記録する。このとき、従来のプラグインテーブル200は、上書き、削除される形態としても良い。テスト内容変更手段160による処理は、アプリケーションロジック層30のビルトインテスト34を再インストールする処理に該当する。
こうすることで、製品が市場に出た後であっても、テスト内容を適宜変更することで、機能拡張プラグインに関するテストを適切に行うことができる。
The test content changing means 160 downloads (obtains) the plug-in test table 200 as shown in FIG. 8 from the
By doing this, even after the product is put on the market, it is possible to appropriately perform the test related to the function expansion plug-in by changing the test contents as appropriate.
画像処理テスト手段170は、プラグイン190により機能拡張されたアプリケーションを含む画像処理が、基本機能確認基準210を満たすか否かを判定する。機能拡張をした後でも、複合機1の基本性能が落ちていないこと(複合機1の基本性能が確保できていること)を確認することができる。
The image
以下では、上記で説明した複合機1の動作原理に基づき、複合機1による処理の流れを説明する。ここでは、図7で示すように、読取フィルタ301の機能を拡張するためのプラグイン190を追加する場合の処理について説明する。
はじめに、プラグイン登録手段110が、ダウンロードサーバ300から、プラグイン190をダウンロードし、記憶装置83に記憶する。そして、テスト実行選択手段150が、プラグイン190に関するテストを実行する旨のユーザの選択を受け付けると、テスト内容抽出手段120が、プラグイン190が読取フィルタ301の機能拡張を行うものであることを検出し、プラグインテストテーブル200から読取フィルタ301に対応する確認項目を抽出する。
Hereinafter, based on the operation principle of the
First, the plug-in
そして、プラグインテスト手段130が、プラグイン190の備えるI/Fの仕様と、テスト内容抽出手段120により抽出された仕様とが一致するか否かを確認、判定し、両者の全ての仕様が一致すると判定した場合に、プラグイン登録手段110が、プラグイン190を利用できる状態にする。一方、プラグインテスト手段130が、両者の仕様に関し1項目でも一致しないと判定した場合には、プラグイン削除手段140が、プラグイン190を記憶装置83から削除する。
Then, the plug-in test means 130 confirms and determines whether or not the I / F specifications included in the plug-in 190 and the specifications extracted by the test content extraction means 120 match, and all the specifications of both are determined. If it is determined that they match, the plug-in
また、プラグイン登録手段110が、プラグイン190を利用できる状態にした後、画像処理手段180が、プラグイン190を利用した画像処理(例えば、原稿をスキャナ89で読み取り、プロッタ90から紙出力するコピー処理)を実行し、画像処理テスト手段170が、該コピー処理と、該コピー処理に関する基本機能確認基準210とを比較して、該コピー処理が基本機能確認基準210をクリアしているか否かを判定する。そして、画像処理テスト手段170により基本機能確認基準210をクリアしていないと判定された場合に、プラグイン削除手段140が、プラグイン190を記憶装置83から削除する。
In addition, after the plug-in
そして、テスト内容変更手段160が、ダウンロードサーバ300から、プラグインテストテーブル200を適宜ダウンロードし、該プラグインテストテーブル200を更新する。
上記のような処理を行うことで、画像処理に係るアプリケーションの機能を拡張するプログラムを追加する際に、該プログラム自体に問題がないか否かの確認を行い、信頼性の高いプログラムのみを追加することにより、堅牢なシステムを有する画像処理装置を提供することができる。
Then, the test
When adding a program that expands the functions of an application related to image processing by performing the above processing, it is checked whether there is a problem with the program itself, and only a highly reliable program is added. By doing so, an image processing apparatus having a robust system can be provided.
(本実施の形態に係る複合機のハードウェア構成)
図9を用いて、本発明の画像処理装置である複合機1のハードウェアの構成例を説明する。図9は、本発明の実施の形態における複合機1のハードウェア構成の一例を示す図である。
複合機1のハードウェアとしては、コントローラ80と、オペレーションパネル87、ファクシミリコントロールユニット(FCU:Facsimile Control Unit)88と、撮像部89と、印刷部90が存在する。
(Hardware configuration of MFP according to this embodiment)
With reference to FIG. 9, a hardware configuration example of the
As the hardware of the
コントローラ80は、CPU(Central Processing Unit)84、ASIC(Application Specific Integrated Circuit)86、NB(North Bridge)85、SB(South Bridge)91、MEM−P81、MEM−C82、HDD(ハードディスクドライブ)83、メモリカードスロット96、ネットワークインタフェースコントローラ(NIC:Network Interface Controller)92、USB(Universal Serial Bus)デバイス93、IEEE(The Institute of Electrical and Electronics Engineers, Inc.)1394デバイス94、セントロニクスデバイス95により構成される。
The
CPU84は、種々の情報処理用のIC(Integrated Circuit)である。ASIC86は、種々の画像処理用のICである。NB85は、コントローラのノースブリッジである。SB91は、コントローラのサウスブリッジである。MEM−P81は、複合機1のシステムメモリである。MEM−C82は、複合機1のローカルメモリである。HDD83は、複合機1のストレージである。メモリカードスロット96は、メモリカード97をセットするためのスロットである。NIC92は、MACアドレスによるネットワーク通信用のコントローラである。USBデバイス93は、USB規格の接続端子を提供するためのデバイスである。セントロニクスデバイス95は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル87は、オペレータが複合機1に入力を行うためのハードウェア(操作部)であると共に、オペレータが複合機1から出力を得るためのハードウェア(表示部)である。
The
なお、本発明に係る複合機1のソフトウェアは、例えば、MEM−C82に格納され、CPU84によって処理されることにより、その機能を複合機1に実行させる。
Note that the software of the
(本発明の複合機1による処理例)
<第1の実施例>
従来、自動テストを行うことにより、複合機1本体に負荷が掛かってしまうため、複合機1の性能に影響が発生するが、第1の実施例においては、自動でテストを行いながらも複合機1の性能を低下させないようにする。
(Example of processing by the
<First embodiment>
Conventionally, a load is applied to the main body of the
(1)複合機1によるプラグイン追加処理について
図10を用いて、プラグインを追加する際の、複合機1による処理例について説明する。図10は、プラグインを追加する際の、複合機1による処理の一例を示すフローチャートである。
ここでは、図7で示すような読取フィルタ301に関するプラグイン190を追加する際の処理について説明することとし、図8で示すプラグインテストテーブル200に従って、プラグイン190の備えるI/Fに関するテストを行う。
(1) Plug-in Addition Processing by
Here, processing when adding the plug-in 190 related to the
S10で複合機1がプラグイン追加時の処理を開始する。当該処理の開始は、ユーザによるプラグイン追加操作をローカルUI部12が受け付けたことで開始する形態としても良い。
S20でプラグイン登録手段110が、ダウンロードサーバ300から、読取フィルタ301の機能を拡張するプラグイン190を取得(ダウンロード)し、当該プラグイン190をHDD83に保存する。ここで、プラグイン登録手段110は、プラグイン190をMEM−P81に保存する形態としても良い。
In S10, the
In S <b> 20, the plug-in
S30でテスト実行選択手段150が、複合機1に追加するプラグイン190に関するテストを実行するか否かに関するユーザの選択に基づいて、テスト内容抽出手段120及びプラグインテスト手段130によるテストを実施するか否かについて決定する。
追加されるプラグインの適性を確認するテストを実施するか否かの選択をユーザに委ね、不要なテストを行わないことで、テスト実行時間を削減することができ、一方では、記憶装置のリソースを有効活用することができる。
In S30, the test
By leaving the user to choose whether or not to perform a test to confirm the suitability of the added plug-in and not performing unnecessary tests, the test execution time can be reduced. Can be used effectively.
S30でテスト実行選択手段150が、プラグイン190に関するテストを実施すると決定した場合(S30でYesの場合)、S40でテスト内容抽出手段120が、プラグイン190がどのアプリケーションに関するプラグインであるかを判別し、該判別結果に基づいて、図8で示すプラグインテストテーブル200から、プラグイン190の備えるI/Fが満たすべき仕様に関する情報を抽出する。I/Fが満たすべき仕様に関する情報は、必要なI/F、該I/Fの引数の数、該I/Fの引数の型に関する情報である。本処理例のように、複合機1に追加しようとするプラグイン190が読取フィルタ301に関するプラグインの場合、該プラグイン190のI/Fが満たすべき仕様は、「スキャンイベント受取」というI/Fを有し、該「スキャンイベント受取」の引数の数は1つであり、該「スキャンイベント受取」の引数の型は「Object型」であることである。
When the test
S30でテスト実行選択手段150が、プラグイン190に関するテストを実施しないと決定した場合(S30でNoの場合)、S70でプラグイン登録手段110が、プラグイン190を追加する処理を完了させる、つまり、プラグイン190をプラグイン管理部22に登録し、画像処理手段180による処理において使用できるようにする。
When the test
S50でプラグインテスト手段130が、テスト内容抽出手段120により抽出した仕様と、プラグイン190の備えるI/Fに関する仕様とを比較して、両者の仕様が一致するか否かを判定する。すなわち、プラグインテスト手段130は、プラグイン190の備えるI/Fが「スキャンイベント受取」であるか否か(プラグイン190は「スキャンイベント受取」という名称のI/Fを有するか否か)、プラグイン190の有する「スキャンイベント受取」というI/Fの引数の数は1つであるか否か、プラグイン190の有する「スキャンイベント受取」というI/Fの引数の型は「Object型」であるか否かについて、確認し、判定を行う。
また、プラグインテスト手段130は、プラグイン190の有する「スキャンイベント受取」というI/Fの応答時間が所定の時間内であるか否かについても、確認し、判定を行う。該応答時間の測定には、タイマーを使用する。
この様なチェックを行うことで、適切なI/Fの未実装を防止し、プログラムをバーションアップする場面で起こりがちなI/Fの不整合等による複合機1の動作不良を防止することができる。また、障害として発見することが難しいタイムアウトによるスレッドの不正処理等についても防止することができる。
In S50, the plug-in test means 130 compares the specifications extracted by the test content extraction means 120 with the specifications related to the I / F provided in the plug-in 190, and determines whether or not the two specifications match. That is, the plug-in test means 130 determines whether the I / F of the plug-in 190 is “scan event received” (whether the plug-in 190 has an I / F named “scan event received”). Whether the number of I / F arguments “scan event reception” included in the plug-in 190 is one, or the type of I / F argument “scan event reception” included in the plug-in 190 is “Object type”. It is confirmed whether or not it is.
The plug-in test means 130 also checks and determines whether or not the response time of the I / F “scan event reception” that the plug-in 190 has is within a predetermined time. A timer is used to measure the response time.
By performing such a check, it is possible to prevent unimplementation of an appropriate I / F, and to prevent malfunction of the
S60でプラグインテスト手段130が、上記項目の全てについて一致する(要件を満たす)と判定した場合(S60でYesの場合)、S70でプラグイン登録手段110が、プラグイン190を追加する処理を完了させる、つまり、プラグイン190をプラグイン管理部22に登録し、画像処理手段180による処理において使用できるようにする。
S60でプラグインテスト手段130が、上記項目のうち1項目でも一致しない(要件を満たさない)と判定した場合(S60でNoの場合)、S80でプラグイン削除手段140が、プラグイン190を記憶装置83又はMEM−P81から削除する。
If the plug-in
If the plug-in test means 130 determines in S60 that even one of the above items does not match (does not satisfy the requirement) (No in S60), the plug-in deletion means 140 stores the plug-in 190 in S80. Delete from the
S90で複合機1がプラグイン追加時の処理を終了する。以後、プラグイン190が追加され、プラグイン管理部22に登録された場合には、画像処理手段180が、プラグイン190の追加された環境で、コピー処理、プリンタ処理、FAX処理等を行い、他方、プラグイン190が削除された場合には、画像処理手段180が、プラグイン190の追加される前の環境で、コピー処理、プリンタ処理、FAX処理等を行う。
このような処理を行うことで、未知なコンポーネントが正しい拡張ルールに従っているかを、プラグイン追加時にリアルタイムで確認することで、より信頼性の高いものしか追加させない堅牢なシステムとすることができる。
In S90, the
By performing such processing, it is possible to make a robust system in which only a more reliable one can be added by checking in real time whether an unknown component complies with the correct extension rule when a plug-in is added.
(2)複合機1の基本動作を確認する処理について
図11を用いて、プラグイン190を追加する際の、複合機1の基本動作を確認する処理について説明する。図11は、複合機1の基本動作を確認する処理の一例を示すフローチャートである。
ここでは、図7で示すような読取フィルタ301に関するプラグイン190を追加する際の処理について説明する。
(2) Processing for Confirming Basic Operation of
Here, a process when a plug-in 190 related to the
S110で複合機1が基本動作の確認を行う処理を開始する。当該処理の開始は、ユーザによる当該処理開始操作をローカルUI部12が受け付けることで開始する形態としても良いし、ユーザの操作によらず、プラグイン190のダウンロード後又はプラグイン管理部22への登録後、自動的に処理を開始する形態としても良い。
S120で画像処理手段180が、読取フィルタ301に関するプラグイン190を追加した環境で、コピー処理、FAX処理等、機能拡張された読取フィルタ301を使用する処理を実行する。プラグイン190を追加したことに伴う、複合機1の基本性能への影響の有無を確認するためである。
In S110, the
In step S <b> 120, the
S130で画像処理テスト手段170が、画像処理手段180により実行された画像処理に対応する基本機能確認基準210を取得する。ここで、基本機能確認基準210は、複合機1において画像処理を行った場合に、当該画像処理が最低限満足すべき基準であり、例えば、スキャナ89で読み取られた画像品質やプロッタ90で印刷された画像品質等に関する機能性基準と、コピーやFAX等の画像処理に要する時間や当該画像処理に関するリソース消費量(メモリリーク、GC、UIの応答時間等)に関する非機能性基準とで構成される。
In S <b> 130, the image
S140で画像処理テスト手段170が、画像処理手段180により実行された画像処理の結果と、当該画像処理に対応する基本機能確認基準210とを比較して、画像処理手段180により実行された画像処理の結果が基本機能確認基準210を満たしているか否かを判定する。
S150で画像処理テスト手段170により基本機能確認基準210を満たしていると判定された場合(S150でYesの場合)、S170で複合機1が基本動作の確認を行う処理を終了する。ここで、プラグイン190がプラグイン管理部22に未登録の状態であれば、S150で画像処理テスト手段170による上記判定がされた後、プラグイン登録手段110が、追加すべきプラグイン190をプラグイン管理部22へ登録し、S170の処理へ移行する形態としても良い。
In step S140, the image
If it is determined in S150 that the image processing test means 170 satisfies the basic function confirmation criterion 210 (Yes in S150), the process in which the
S150で画像処理テスト手段170により基本機能確認基準210を満たしていないと判定された場合(S150でNoの場合)、S160でプラグイン削除手段140が、プラグイン190を記憶装置83又はMEM−P81から削除し、必要であれば、プラグイン管理部22からも登録を削除し、S170で複合機1が基本動作の確認を行う処理を終了する。
上記のような処理を行うことで、機能拡張をした後でも、複合機1の基本性能が落ちていないこと(確保できていること)を確認することができる。
If the image processing test means 170 determines that the basic
By performing the processing as described above, it is possible to confirm that the basic performance of the
(3)複合機1によるプラグインテストテーブル200を更新する処理について
図12を用いて、複合機1によるプラグインテストテーブル200を更新する処理について説明する。図12は、複合機1によるプラグインテストテーブル200を更新する処理の一例を示すフローチャートである。
S210で複合機1が、プラグインテストテーブル200を更新する処理を開始する。当該処理の開始は、ユーザによる処理開始操作をローカルUI部12が受け付けることで開始する形態としても良く、一定の時間間隔で自動的に処理が開始される形態としても良い。
(3) Processing for Updating Plug-in Test Table 200 by
In S <b> 210, the
S220でテスト内容変更手段160が、ダウンロードサーバ300から、プラグインテストテーブル200を取得(ダウンロード)し、S230で当該プラグインテストテーブル200を記憶装置83に記憶(登録)する。このとき、従来の(古い)プラグインテストテーブル200は削除される(新しいプラグインテストテーブル200を上書き保存する)形態としても良い。S220におけるテスト内容変更手段160による処理は、アプリケーションロジック層30のビルトインテスト34を再インストールする処理に該当する。
S240で複合機1が、プラグインテストテーブル200を更新する処理を終了する。
上記のように、製品が市場に出た後であっても、テスト内容を適宜変更することで、機能拡張プラグインに関するテストを適切に行うことができる。
In S220, the test
In S240, the
As described above, even after the product is put on the market, the test related to the function extension plug-in can be appropriately performed by appropriately changing the test contents.
<第2の実施例>
図13、図14で示すように、第2の実施例における画像処理装置1では、画像処理に係るアプリケーションの機能を拡張するためのプラグインを追加可能となっており、前記プラグインが追加された後に、該プラグインの備えるインタフェースに関する仕様が、前記アプリケーションの要求する該インタフェースに関する仕様と一致するか否かの判定を行うプラグインテスト手段130を有する画像処理装置1であって、CPU(演算装置)・メモリを複数保持し、プラグインテストを実施する専用のCPU・メモリを有することを特徴とする。これにより、プラグインテストをすぐに実施することができる。
<Second embodiment>
As shown in FIGS. 13 and 14, in the
また、図15−20で示すように、第2の実施例における画像処理装置1では、画像処理に係るアプリケーションの機能を拡張するためのプラグインを追加可能となっており、前記プラグインが追加された後に、該プラグインの備えるインタフェースに関する仕様が、前記アプリケーションの要求する該インタフェースに関する仕様と一致するか否かの判定を行うプラグインテスト手段130を有する画像処理装置1であって、CPU(演算装置)・メモリを複数保持し、使用されていないCPU・メモリを検索し、プラグインテストを実施することを特徴とする。こうすることにより、リソースを最大限利用できる。
Also, as shown in FIG. 15-20, in the
さらに、図15−20で示すように、第2の実施例における画像処理装置1では、画像処理に係るアプリケーションの機能を拡張するためのプラグインを追加可能となっており、前記プラグインが追加された後に、該プラグインの備えるインタフェースに関する仕様が、前記アプリケーションの要求する該インタフェースに関する仕様と一致するか否かの判定を行うプラグインテスト手段130を有する画像処理装置1であって、CPU(演算装置)・メモリのどちらか一方のみ複数保持し、プラグインテストを実施することを特徴とする。こうすることにより、コスト削減を図ることができる。
Further, as shown in FIG. 15-20, in the
図21で示すように、第2の実施例における画像処理装置1では、CPU(演算装置)・メモリを複数保持し、一組のCPU・メモリで行う予定となっている処理を別のCPU・メモリに委譲させ、プラグインテストを実施するためのCPU・メモリを確保することを特徴とする。こうすることにより、リソースを最大限利用でき、また、テストもすぐに実施することができる。
As shown in FIG. 21, in the
ここで、図19−21のフローチャートの動作主体は、図13中のスケジューラである。また、図21において、ジョブが終わったことの検知方法については、例えば、作像装置90やFCU88から終了通知がCPUに通知され、使ったデバイス全てから終了通知が来た場合にジョブ終了を検知する形態としても良い。
Here, the operating subject in the flowchart of FIGS. 19-21 is the scheduler in FIG. In FIG. 21, regarding the method for detecting the end of the job, for example, the end notification is notified to the CPU from the
図22で示すように、第2の実施例における画像処理装置1では、CPU(演算装置)・メモリを複数保持し、新規画像処理のジョブが実行される時に、実行中のプラグインテストを中断させ、画像処理のジョブを実施し、ジョブ終了後プラグインテストを再開させることを特徴とする。こうすることにより、ジョブを優先させることができる。つまり、ユーザの要求により詳細に応えることができる。
As shown in FIG. 22, the
また、第2の実施例における画像処理装置1では、CPU(演算装置)・メモリを複数保持し、プラグイン追加時に画像処理装置1が行っている画像処理のジョブを中断させ、プラグインテストを実施し、プラグインテスト終了後ジョブを再開させることを特徴とする。こうすることにより、テストを優先させることができる。つまり、ユーザの要求により詳細に応えることができる。
The
従来、自動でテストを行うことにより、本体1に負荷がかかってしまうため、画像処理装置1の性能に影響が発生していたが、上記のように第2の実施例においては、画像処理装置1の性能を低下させずに自動でテストを行うことができる。
Conventionally, since the test is automatically performed, a load is applied to the
<第3の実施例>
図23、24で示すように、第3の実施例においては、サーバ300と画像処理装置1とを直接接続する形態としても良く、サーバ300をユーザが構築したLAN内に設置する形態としても良く、また、サーバ300を画像処理装置1の提供元のLAN内に設置する形態としても良い。こうすることにより、セキュリティの向上を図ることができたり、テスト項目を常に最新にすることができる。また、問題が発生したときの対処を素早く取ることができる。
<Third embodiment>
As shown in FIGS. 23 and 24, in the third embodiment, the
そして、図25、26、27で示すように、第3の実施例における画像処理装置1では、画像処理に係るアプリケーションの機能を拡張するためのプラグインを追加可能となっており、前記プラグインが追加された後に、該プラグインの備えるインタフェースに関する仕様が、前記アプリケーションの要求する該インタフェースに関する仕様と一致するか否かの判定を行うプラグインテスト手段130を有する画像処理装置1であって、サーバ300に本体1の構成(プリントサーバ、ASIC、CPU、メモリ)、追加されたプラグイン情報、本体の使用状況、テスト項目を送る手段と、サーバ300でテストされた結果を受け取る手段と、テスト結果を判断する手段を有することを特徴とする。こうすることにより、本体1に負担を全く掛けずにテストを実施することができる。
As shown in FIGS. 25, 26, and 27, in the
また、図25、27、28で示すように、第3の実施例における画像処理装置1では、ユーザがプラグイン追加を希望した際に、プラグインを本体1にサーバから取得する前に、サーバ300に本体1の構成(プリントサーバ、ASIC、CPU、メモリ)、追加希望されたプラグイン情報、本体1の使用状況を送り、サーバ300でテストを実施し、その結果によってダウンロードを開始することを特徴とする。こうすることにより、テスト失敗時のダウンロードの時間を削減することができる。
As shown in FIGS. 25, 27, and 28, in the
さらに、図29で示すように、第3の実施例における画像処理装置1では、サーバ300で実施するテストを、ソフトエミュレーション環境によって実施することを特徴とする。こうすることにより、コスト削減を図ることができる。
Furthermore, as shown in FIG. 29, the
図30、31で示すように、第3の実施例における画像処理装置1では、定期的にサーバに本体1の構成(プリントサーバ、ASIC、CPU、メモリ)、本体1の使用状況を送信しておき、毎日定期的にサーバ300でプラグインに対してテストを行い、ダウンロード可能なプラグインを選定しておくことを特徴とする。こうすることにより、ユーザの手間が減り、ユーザが選択した後のテスト失敗がなくなる。
As shown in FIGS. 30 and 31, in the
従来、自動でテストを行うことにより、本体1に負荷がかかってしまうため、画像処理装置1の性能に影響が発生していたが、上記のように第3の実施例においては、画像処理装置1の性能を低下させずに自動でテストを行うことができる。
Conventionally, since the test is automatically performed, a load is applied to the
(総括)
本発明では、画像処理に係るアプリケーションの機能を拡張するプログラムを追加する際に、該プログラム自体に問題がないか否かの確認を行い、信頼性の高いプログラムのみを追加することにより、堅牢なシステムを有する画像処理装置を提供することができる。
以上、本発明の実施の形態について詳述したが、本発明は係る特定の実施の形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲において、種々の変形・変更が可能である。
(Summary)
In the present invention, when adding a program that expands the function of an application related to image processing, it is confirmed whether or not there is a problem with the program itself, and only a highly reliable program is added, thereby ensuring robustness. An image processing apparatus having the system can be provided.
Although the embodiment of the present invention has been described in detail above, the present invention is not limited to the specific embodiment, and various modifications are possible within the scope of the gist of the present invention described in the claims.・ Change is possible.
1 複合機(画像処理装置)
12 ローカルUI部
22 プラグイン管理部
30 アプリケーションロジック層
31 コピーアクティビティ
32 プリンタアクティビティ
81 記憶装置(MEM−P)
83 記憶装置(HDD)
301 読取フィルタ
311 文書加工フィルタ
321 印刷フィルタ
110 プラグイン登録手段
120 テスト内容抽出手段
130 プラグインテスト手段
140 プラグイン削除手段
150 テスト実行選択手段
160 テスト内容変更手段
170 画像処理テスト手段
180 画像処理手段
190 プラグイン
200 プラグインテストテーブル
210 基本機能確認基準
300 ダウンロードサーバ
1 MFP (image processing device)
12
83 Storage device (HDD)
301
Claims (17)
前記プラグインが追加される際に、該プラグインの備えるインタフェースに関する仕様が、前記アプリケーションの要求する該インタフェースに関する仕様と一致するか否かの判定を行うプラグインテスト手段を有することを特徴とする画像処理装置。 An image processing apparatus capable of adding a plug-in for extending an application function related to image processing,
When the plug-in is added, there is provided plug-in test means for determining whether or not a specification related to an interface included in the plug-in matches a specification related to the interface required by the application. Image processing device.
前記プラグインテスト手段により、前記プラグインの備えるインタフェースに関する仕様が、前記アプリケーションの要求する該インタフェースに関する仕様と一致しないと判定された場合に、前記プラグインを前記記憶装置から削除するプラグイン削除手段と、を有することを特徴とする請求項1乃至7の何れか一に記載の画像処理装置。 A storage device for storing the plug-in when the plug-in is added;
Plug-in deletion unit that deletes the plug-in from the storage device when it is determined by the plug-in test unit that the specification regarding the interface included in the plug-in does not match the specification regarding the interface requested by the application The image processing apparatus according to claim 1, further comprising:
前記複数のCPU及び記憶装置のうち、不使用の該CPU及び記憶装置を検索し、検索した該CPU及び記憶装置を用いて、前記プラグインテスト手段による処理を実施することを特徴とする請求項1乃至11の何れか一に記載の画像処理装置。 A plurality of CPUs and storage devices;
The CPU and the storage device that are not used among the plurality of CPUs and the storage device are searched, and the processing by the plug-in test unit is performed using the searched CPU and storage device. The image processing apparatus according to any one of 1 to 11.
前記プラグインテスト手段は、前記テスト結果を判定することを特徴とする請求項1乃至14の何れか一に記載の画像処理装置。 Means for notifying the server connected to the image processing apparatus of the configuration of the image processing apparatus, the plug-in information added to the image processing apparatus, the usage status of the image processing apparatus, and test items; Means for obtaining test results according to
The image processing apparatus according to claim 1, wherein the plug-in test unit determines the test result.
前記サーバに対し、当該画像処理装置の構成、当該画像処理装置に追加される前記プラグイン情報、当該画像処理装置の使用状況及びテスト項目を通知する手段と、該サーバによるテスト結果を取得する手段とを有し、
前記プラグインテスト手段は前記テスト結果の判定を行い、該判定の結果に応じて前記プラグインのダウンロードを開始することを特徴とする請求項1乃至15の何れか一に記載の画像処理装置。 When downloading the plug-in from the server to the image processing device,
Means for notifying the server of the configuration of the image processing apparatus, the plug-in information added to the image processing apparatus, the usage status of the image processing apparatus, and test items; and means for acquiring test results from the server And
The image processing apparatus according to claim 1, wherein the plug-in test unit determines the test result and starts downloading the plug-in according to the determination result.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009055699A JP5381179B2 (en) | 2008-06-06 | 2009-03-09 | Image processing device |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008149327 | 2008-06-06 | ||
JP2008149327 | 2008-06-06 | ||
JP2009055699A JP5381179B2 (en) | 2008-06-06 | 2009-03-09 | Image processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010016797A true JP2010016797A (en) | 2010-01-21 |
JP5381179B2 JP5381179B2 (en) | 2014-01-08 |
Family
ID=41702437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009055699A Expired - Fee Related JP5381179B2 (en) | 2008-06-06 | 2009-03-09 | Image processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5381179B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347597A (en) * | 2019-07-04 | 2019-10-18 | Oppo广东移动通信有限公司 | Interface test method, device, storage medium and the mobile terminal of picture servers |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04332050A (en) * | 1991-05-07 | 1992-11-19 | Nec Corp | Debugger to be restarted from interrupted point at the time of restarting |
JPH05323705A (en) * | 1992-05-21 | 1993-12-07 | Minolta Camera Co Ltd | Image forming device |
JPH05346875A (en) * | 1990-06-07 | 1993-12-27 | Sun Microsyst Inc | Automation testing system for computer application software |
JPH06250870A (en) * | 1993-02-24 | 1994-09-09 | Victor Co Of Japan Ltd | Digital signal processor |
JPH10222355A (en) * | 1997-01-31 | 1998-08-21 | Toshiba Corp | Gui application developing device |
JP2000276361A (en) * | 1999-03-26 | 2000-10-06 | Oki Electric Ind Co Ltd | Program response time predicting device |
JP2002182919A (en) * | 2000-12-08 | 2002-06-28 | Hitachi Ltd | Controller and application installation method |
JP2004118494A (en) * | 2002-09-26 | 2004-04-15 | Hitachi Software Eng Co Ltd | Checking program and checking method for interface between different language programs |
JP2004519114A (en) * | 2000-07-07 | 2004-06-24 | サイエンス アプリケーションズ インターナショナル コーポレイション | Dedicated network switching system with multiple service providers with portal, collaborative applications, and directory services |
JP2004326808A (en) * | 2003-04-28 | 2004-11-18 | Internatl Business Mach Corp <Ibm> | Non-intervening dynamic hot plug of server node in smp, and hot removal |
JP2007213404A (en) * | 2006-02-10 | 2007-08-23 | Canon Inc | Embedded equipment, download method, storage medium and program |
JP2008056465A (en) * | 2006-09-01 | 2008-03-13 | Sharp Corp | Image processor |
JP2008065479A (en) * | 2006-09-05 | 2008-03-21 | Ricoh Co Ltd | Image processor, image processing method and image processing program |
JP2008123254A (en) * | 2006-11-13 | 2008-05-29 | Nippon Shoken Technology Kk | INFLUENCE ANALYSIS TOOL FOR LARGE-SCALE BUSINESS SYSTEM USING Java (R) LANGUAGE PROGRAM |
-
2009
- 2009-03-09 JP JP2009055699A patent/JP5381179B2/en not_active Expired - Fee Related
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05346875A (en) * | 1990-06-07 | 1993-12-27 | Sun Microsyst Inc | Automation testing system for computer application software |
JPH04332050A (en) * | 1991-05-07 | 1992-11-19 | Nec Corp | Debugger to be restarted from interrupted point at the time of restarting |
JPH05323705A (en) * | 1992-05-21 | 1993-12-07 | Minolta Camera Co Ltd | Image forming device |
JPH06250870A (en) * | 1993-02-24 | 1994-09-09 | Victor Co Of Japan Ltd | Digital signal processor |
JPH10222355A (en) * | 1997-01-31 | 1998-08-21 | Toshiba Corp | Gui application developing device |
JP2000276361A (en) * | 1999-03-26 | 2000-10-06 | Oki Electric Ind Co Ltd | Program response time predicting device |
JP2004519114A (en) * | 2000-07-07 | 2004-06-24 | サイエンス アプリケーションズ インターナショナル コーポレイション | Dedicated network switching system with multiple service providers with portal, collaborative applications, and directory services |
JP2002182919A (en) * | 2000-12-08 | 2002-06-28 | Hitachi Ltd | Controller and application installation method |
JP2004118494A (en) * | 2002-09-26 | 2004-04-15 | Hitachi Software Eng Co Ltd | Checking program and checking method for interface between different language programs |
JP2004326808A (en) * | 2003-04-28 | 2004-11-18 | Internatl Business Mach Corp <Ibm> | Non-intervening dynamic hot plug of server node in smp, and hot removal |
JP2007213404A (en) * | 2006-02-10 | 2007-08-23 | Canon Inc | Embedded equipment, download method, storage medium and program |
JP2008056465A (en) * | 2006-09-01 | 2008-03-13 | Sharp Corp | Image processor |
JP2008065479A (en) * | 2006-09-05 | 2008-03-21 | Ricoh Co Ltd | Image processor, image processing method and image processing program |
JP2008123254A (en) * | 2006-11-13 | 2008-05-29 | Nippon Shoken Technology Kk | INFLUENCE ANALYSIS TOOL FOR LARGE-SCALE BUSINESS SYSTEM USING Java (R) LANGUAGE PROGRAM |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347597A (en) * | 2019-07-04 | 2019-10-18 | Oppo广东移动通信有限公司 | Interface test method, device, storage medium and the mobile terminal of picture servers |
CN110347597B (en) * | 2019-07-04 | 2023-09-26 | Oppo广东移动通信有限公司 | Interface testing method and device of picture server, storage medium and mobile terminal |
Also Published As
Publication number | Publication date |
---|---|
JP5381179B2 (en) | 2014-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5293344B2 (en) | Image processing apparatus, software distribution system, installation processing method, and program | |
JP4597834B2 (en) | Image forming apparatus, information processing method, information processing program, and recording medium | |
US9948810B2 (en) | Image forming apparatus, information setting system, and information setting method for controlling setting values by requesting setting information through a network | |
JP6108219B2 (en) | Update management program, update management apparatus, and image processing system | |
EP3220293A1 (en) | Information processing apparatus, information processing system, method for processing information, and program | |
US20190174015A1 (en) | Image processing apparatus associating with external apparatus, control method, and storage medium | |
JP2006202028A (en) | Program management system, its control method, and storage medium | |
JP2009223699A (en) | Information processing apparatus and method | |
US8839250B2 (en) | Image forming apparatus, storage medium, and program system determination | |
JP2011138375A (en) | Operation inhibiting system, image forming device, operation inhibition information providing device, and operation inhibiting method | |
JP4861765B2 (en) | Apparatus, information processing method, information processing program, and recording medium | |
JP5889827B2 (en) | Image forming apparatus and image forming method | |
JP2001147815A (en) | Device and system for forming image | |
JP5664692B2 (en) | Electronic device, image forming apparatus, information processing method, information processing program, and recording medium | |
JP2004118237A (en) | Image forming apparatus and application installing method | |
JP5381179B2 (en) | Image processing device | |
JP2010072860A (en) | Electronic equipment, remote management system, control method, program, and recording medium | |
JP2006311590A (en) | Image forming apparatus and application installing method | |
US20110010718A1 (en) | Electronic device, information processing method, and computer program product having computer-readable information processing program | |
JP2006099187A (en) | Information processor | |
JP5793872B2 (en) | Image forming apparatus, program management method, program management program, and recording medium | |
JP7119433B2 (en) | Equipment, information processing system, information processing method and program | |
JP4459033B2 (en) | Image forming apparatus, terminal apparatus, information processing method, information processing program, and recording medium | |
JP2005269439A (en) | Image forming apparatus, information processing method, information processing program, and recording medium | |
JP2004127253A (en) | Information processing apparatus and version check method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120130 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120620 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130321 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130326 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130517 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130604 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130801 |
|
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: 20130903 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130916 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5381179 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |