JP2011123842A - 画像形成装置、機能追加方法、及びプログラム - Google Patents

画像形成装置、機能追加方法、及びプログラム Download PDF

Info

Publication number
JP2011123842A
JP2011123842A JP2009283310A JP2009283310A JP2011123842A JP 2011123842 A JP2011123842 A JP 2011123842A JP 2009283310 A JP2009283310 A JP 2009283310A JP 2009283310 A JP2009283310 A JP 2009283310A JP 2011123842 A JP2011123842 A JP 2011123842A
Authority
JP
Japan
Prior art keywords
application
program
additional program
image forming
resource information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009283310A
Other languages
English (en)
Inventor
Hideki Ohashi
英樹 大橋
Tsutomu Oishi
勉 大石
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 JP2009283310A priority Critical patent/JP2011123842A/ja
Priority to US12/963,687 priority patent/US8635633B2/en
Priority to CN201010592053.9A priority patent/CN102123217B/zh
Publication of JP2011123842A publication Critical patent/JP2011123842A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00002Diagnosis, testing or measuring; Detecting, analysing or monitoring not otherwise provided for
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00002Diagnosis, testing or measuring; Detecting, analysing or monitoring not otherwise provided for
    • H04N1/00026Methods therefor
    • H04N1/00031Testing, i.e. determining the result of a trial
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00002Diagnosis, testing or measuring; Detecting, analysing or monitoring not otherwise provided for
    • H04N1/00026Methods therefor
    • H04N1/00053Methods therefor out of service, i.e. outside of normal operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00002Diagnosis, testing or measuring; Detecting, analysing or monitoring not otherwise provided for
    • H04N1/00026Methods therefor
    • H04N1/00063Methods therefor using at least a part of the apparatus itself, e.g. self-testing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00962Input arrangements for operating instructions or parameters, e.g. updating internal software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

【課題】新たなAPIの追加を容易化すること。
【解決手段】アプリケーションプラットフォーム有する画像形成装置であって、前記アプリケーションプラットフォームは、実装が空であるインタフェースを有し、他のプログラムに動的に処理を割り込ませることが可能な追加プログラムを前記インタフェースに適用する適用手段を有する。
【選択図】図4

Description

本発明は、画像形成装置、機能追加方法、及びプログラムに関し、特にアプリケーションプラットフォームを有する画像形成装置、機能追加方法、及びプログラムに関する。
近年、特に複合機又は融合機と呼ばれる画像形成装置の中には、API(Application Program Interface)が外部に公開されたアプリケーションプラットフォーム(以下、単に「プラットフォーム」という。)を備えたものが存在する(例えば、特許文献1)。プラットフォーム上では、サードベンダ等によって多数のアプリケーションが開発されている。ユーザは、自らの業務等に適したアプリケーションを購入し、画像形成装置(以下、「機器」という。)にインストールすることで、業務の効率化等を図ることができる。
プラットフォームは,可能な限り多くの要望に対応するためにAPIが用意されている。しかし、エンドユーザによる機器の利用形態が多様化し、様々なアプリケーションがプラットフォーム上において実装されている昨今において、機器の量産後におけるプラットフォームに対する変更要求が少なくない。
例えば、新たに開発されるアプリケーションにおいて、機器に関する情報を取得する必要が有る場合、プラットフォームが当該情報を取得するためのAPIを有していないと、プラットフォームの開発者には、当該APIの提供が要求される。したがって、このような個別要求が繰り返されると、プラットフォームの開発者に対する負担が非常に大きくなり、新たな開発へ工数を割けなくなってしまうという問題がある。
なお、理論的には、予め、機器に関する全ての情報を提供可能なようにAPIを実装することも考えられるが、実際問題として、機器に関する情報は膨大であり、その全てを取得するためのAPIを予め実装することは困難である。また、実際に使用されるか不明なAPIを実装するのは、開発コストの観点からも現実的ではない。更に、機器は、汎用的なデバイスインタフェース(例えば、USB(Universal Serial Bus)等)を備えており、当該デバイスインタフェースを介して接続された装置の制御等に関するAPIを予め予測して実装するのも不可能に近い。
本発明は、上記の点に鑑みてなされたものであって、新たなAPIの追加を容易化することのできる画像形成装置、機能追加方法、及びプログラムの提供を目的とする。
そこで上記課題を解決するため、本発明は、アプリケーションプラットフォーム有する画像形成装置であって、前記アプリケーションプラットフォームは、実装が空であるインタフェースを有し、他のプログラムに動的に処理を割り込ませることが可能な追加プログラムを前記インタフェースに適用する適用手段を有する。
このような画像形成装置では、新たなAPIの追加を容易化することができる。
本発明によれば、新たなAPIの追加を容易化することができる。
本発明の実施の形態における機器管理システムの構成例を示す図である。 追加プログラムを説明するための図である。 本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。 本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。 新たなAPIの追加例を説明するための図である。 既存のAPIの変更例を説明するための図である。 検証アプリの機能構成例を示す図である。 テスト条件及び判定条件の設定処理の処理手順を説明するためのシーケンス図である。 検証アプリによる処理手順を説明するためのシーケンス図である。 リソース情報の取得処理及び妥当性の判定処理の第一の例を説明するためのシーケンス図である。 リソース情報の取得処理及び妥当性の判定処理の第二の例を説明するためのシーケンス図である。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における機器管理システムの構成例を示す図である。図1の機器管理システムにおいて、画像形成装置10と管理装置20とは、オフィスにおけるLAN(Local Area Network)等のネットワーク40(有線又は無線の別は問わない。)を介して接続されている。
画像形成装置10は、コピー、ファクシミリ、プリンタ、及びスキャナ等の複数の機能を一台の筐体において実現する画像形成装置(複合機)である。但し、いずれか一つの機能を実現する機器であってもよい。
管理装置20は、画像形成装置10において利用されるプログラムに対して適用される追加プログラムの管理及び当該追加プログラムの画像形成装置10への転送等を行うコンピュータである。本実施の形態において、追加プログラムとは、適用対象とされるプログラムの任意の箇所において、当該追加プログラムに定義された処理を動的に割り込ませることのできるプログラムをいう。
図2は、追加プログラムを説明するための図である。図2において、501は、追加プログラム505が適用されるプログラムにおける仮想メモリ上における命令の配列を示す。プログラム501は、追加プログラム505が適用される前(通常実行時)は、命令1、2、3の順で処理を実行する。501aは、プログラム501に追加プログラム505が適用された状態を示す。ここでは、命令1と命令2との間に追加プログラム505の処理を割り込ませる例が示されている。この場合、命令2がテーブル502への分岐命令に置き換えられる。テーブル502には、初期化処理、前処理(変数のスタックへの退避等)、追加プログラム505の呼び出し処理、後処理(スタックに退避されていた変数等の取り出し等)の後に命令2が実行され、プログラム501の命令3に戻るような定義がされている。
すなわち、追加プログラムが適用される場合、適用対象とされたプログラムの実行ステップが予め指定された箇所(追加位置)に到達すると、追加プログラムの処理が実行される。当該追加プログラムの処理が終了すると、適用対象とされたプログラムに処理制御が復帰する。その後、適用対象とされたプログラムは、追加位置より処理を再開する。追加プログラムには、適用対象のプログラムに割り込ませる処理の他、適用対象とするプログラム及び追加位置を識別するための情報が含まれている。
追加プログラム内では、適用対象とされるプログラムの変数等を参照可能である。したがって、追加プログラムによって、適用対象とされるプログラムの任意の箇所における変数の値等を示すログ情報を出力させるための処理や、バグを修正するための処理や、新たな機能を実現するための処理等を適用対象とされるプログラムに割り込ませることができる。
斯かる追加プログラムによれば、適用対象とされるプログラムについて、ソースコードの修正、コンパイル及びリンク、更に、再インストール等を行うことなく(すなわち、動的に)、ログ情報の出力、バグの修正、又は機能強化等を図ることができる。
なお、本実施の形態において、追加プログラムを適用対象のプログラムに適用し、実行可能な状態とすること、すなわち、追加プログラムをメモリ上にロードし、適用対象のプログラムにロードされた追加プログラムの分岐命令を挿入することを追加プログラムの「有効化」という。すなわち、追加プログラムは、画像形成装置10内に転送されただけでは機能せず、有効化されることにより適用対象のプログラムに処理を割り込ませることができる。一方、追加プログラムの適用を解除することを追加プログラムの「無効化」という。なお、図2に示される技術は、公知技術である。
図3は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図3において、画像形成装置10は、CPU101、RAM102、ROM103、HDD104、スキャナ105、プリンタ106、オペレーションパネル107、SDカードスロット108、USBポート109、及びネットワークインタフェース110等のハードウェアを有する。
ROM103には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。RAM102は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。CPU101は、RAM102にロードされたプログラムを処理することにより、各種の機能を実現する。HDD104には、プログラムやプログラムが利用する各種のデータ等が記録される。スキャナ105は、原稿より画像データを読み取るためのハードウェアである。プリンタ106は、画像データを印刷用紙に印刷するためのハードウェアである。オペレーションパネル107は、ユーザからの入力の受け付けを行うめのボタン等の入力手段や、液晶パネル等の表示手段を備えたハードウェアである。SDカードスロット108は、SDカード50に記録されたプログラムを読み取るために利用される。すなわち、画像形成装置10では、ROM103に記録されたプログラムだけでなく、SDカード50に記録されたプログラムもRAM102にロードされ、実行されうる。USBポート109は、USB(Universal Serial Bus)インタフェース用の接続口(コネクタ)である。ネットワークインタフェース110は、LAN(Local Area Network)等のネットワーク(有線又は無線の別は問わない。)を接続するためのハードウェアインタフェースである。
図4は、本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。同図において、画像形成装置10は、標準アプリ121、SDKアプリ122、SDKプラットフォーム123、仮想アプリケーションサービス(VAS)124、コントロールサービス125、追加プログラム制御部126、及びOS127等を有する。
標準アプリ121は、画像形成装置10に標準的に(出荷時に予め)実装されているアプリケーションプログラムの集合である。同図では、スキャンアプリ1211、印刷アプリ1212、コピーアプリ1213、FAXアプリ1214、及び検証アプリ1215が例示されている。スキャンアプリ1211は、スキャンジョブを実行する。印刷アプリ1212は印刷ジョブを実行する。コピーアプリ1213は、コピージョブを実行する。FAXアプリ1214は、FAXの送信ジョブ又は受信ジョブを実行する。検証アプリ1215は、画像形成装置10のアプリケーションプラットフォームに対して機能強化等が行われた場合に、当該機能強化等の妥当性を検証するための処理を実行する。なお、アプリケーションプラットフォームの範囲については後述する。
コントロールサービス125は、各種のハードウェアリソース等を制御するための機能(API)を上位アプリケーション等(標準アプリ121、SDKプラットフォーム123)に対して提供するソフトウェアモジュール群である。同図では、オペレーションパネルコントロールサービス(OCS)1251、エンジンコントロールサービス(ECS)1252、ファクシミリコントロールサービス(FCS)1253、ネットワークコントロールサービス(NCS)1254、及びシステムコントロールサービス(SCS)1255等が例示されている。OCS1251は、オペレーションパネル107に関する制御を行うためのAPIを提供する。ECS1252は、プリンタ105やプリンタ106等の画像形成処理のエンジン部分関する制御を行うためのAPIを提供する。FCS1253は、ファクシミリに関する制御を行うためのAPIを提供する。NCS1254は、ネットワーク通信に関する制御を行うためのAPIを提供する。SCS1255は、画像形成装置10内のシステム管理に関するAPIや、画像形成装置10に関する各種情報を取得するためのAPI等を提供する。
VAS124は、コントロールサービス125と、その上位アプリケーション(標準アプリ121、SDKプラットフォーム123)との仲介を行う。具体的には、VAS124は、上位アプリケーションからコントロールサービス125のAPIをラッピングしたAPIを上位アプリケーションに対して提供する。VAS124によってコントロールサービス125がラッピングされることにより、コントロールサービス125のAPIが上位アプリケーションから隠蔽される。その結果、コントロールサービス125のバージョンアップ等に伴うAPIの変更がVAS124によって吸収され、当該バージョンアップ等に対する上位アプリケーションの互換性が確保される。
SDKアプリ122は、画像形成装置10の出荷後において、画像形成装置10の機能拡張を図るためのプラグインとして追加的に開発及びインストールされるアプリケーションプログラムである。同図では、SDKアプリ122として、Aアプリ1221、Bアプリ1222、及びSDK検証アプリ1223が例示されている。Aアプリ1221及びBアプリ1222は、所定のサービスを提供するSDKアプリ122である。例えば、Aアプリ1221、ベンダAによって開発されたSDKアプリ122であり、Bアプリ1222は、ベンダBによって開発されたSDKアプリ122である。SDK検証アプリ1223は、画像形成装置10のアプリケーションプラットフォームに対して機能強化等が行われた場合に、SDKプラットフォーム123への影響という観点において、当該機能強化等の妥当性を検証するための処理を実行する。
SDKプラットフォーム123は、SDKアプリ122の実行環境を提供する。各SDKアプリ122は、SDKプラットフォーム123が提供するAPI(クラスライブラリ)利用して開発される。SDKプラットフォーム123は、コントロールサービス125によって提供されるAPIに対し、機種に対する依存度がより低く、より開発効率の高いAPIをJava(登録商標)言語によって提供する。したがって、SDKアプリ122は、Java(登録商標)言語によって実装される。なお、同図において、SDKプラットフォーム123は、Java(登録商標)仮想マシンを含む。したがって、SDKアプリ122は、Java(登録商標)標準のクラスライブラリを利用することもできる。
なお、SDKアプリ122及びSDKプラットフォーム123は、SDカード50に記録されている。但し、SDKアプリ122及びSDKプラットフォーム123は、携帯可能な他の記録媒体(例えば、USBメモリやCD−ROM等)に記録されていてもよいし、ネットワークを介して配布されてもよい。
図4は、SDKアプリ122及びSDKプラットフォーム123がSDカード50から仮想メモリにロードされた状態が示されている。
追加プログラム制御部126は、管理装置20より転送される追加プログラムを受信し、当該追加プログラムをRAM102に展開させる。また、追加プログラム制御部126は、管理装置20より送信される指示に応じ、当該追加プログラムの有効化又は無効化等を実行する。
OS127は、いわゆるOS(Operating System)であり、デバイスドライバ1271等を含む。画像形成装置10上の各ソフトウェアは、OS127上においてプロセス又はスレッドとして動作する。デバイスドライバ1271は、USBポート109等の汎用的なデバイスインタフェースを介して接続される装置の制御を行う。
なお、図4において、SDKアプリ122及びSDKプラットフォーム123(Java(登録商標)仮想マシンは除く)以外は、ネイティブコードである。すなわち、CPU101が解釈可能なマシン語に変換されたプログラムである。
図4において、SDKプラットフォーム123が狭義のアプリケーションプラットフォームであるとすると、SDKプラットフォーム123、VAS124、及びシステムコントロール125は、広義のアプリケーションプラットフォーム(アプリケーションプラットフォームを実現する手段)に相当する。SDKアプリ122の開発ベンダから直接見えるのは、SDKプラットフォーム123であるが、SDKプラットフォーム123が機能するためには、VAS124及びシステムコントロール125が必要だからである。したがって、以下において、単にアプリケーションプラットフォームというとき、SDKプラットフォーム123、VAS124、及びシステムコントロール125より構成される部分をいう。すなわち、本実施の形態において、アプリケーションプラットフォームは、上位層から順に、SDKプラットフォーム123、VAS124、システムコントロール125といったように、複数の階層を有する。
アプリケーションプラットフォームに含まれる各階層は、符号a又は符号bが付された部分を有する。部分aは、コーディング及びコンパイル等を行わずに実質的に新たなAPIの追加を可能とするための実装部分である。部分bは、コーディング及びコンパイル等を行わずに、処理内容(実装内容)を変更可能な既存のAPIの実装部分である。但し、部分bに関しては特別な実装は必要ではない。既存のAPIの実施内容は、追加プログラムを適用することにより動的に変更可能だからである。強いて言えば、部分bは、追加プログラムの追加位置となるステップに相当する。
一方、コーディング及びコンパイル等を実行することなく、新たなAPIを追加するのは、特にネイティブコードに関しては厳密には不可能である。そこで、本実施の形態では、新たなAPIの追加を擬似的に実現する。具体的には、部分aは、中身が空の関数又はメソッド(以下、「ダミー関数」という。)として実装しておく。空とは、実質的に空であればよく、完全に空である(すなわち、関数内に何も記載されていない)ことに限定されない。実質的に空であるとは、関数に特有の機能を実現するためのステップが記述されていないことをいう。例えば、関数が呼ばれたことを記録するログの記録ステップについては、関数に特有の機能を実現するためのステップではない。したがって、ログの記録ステップが含まれていたとしても、当該関数は実質的に空である。また、追加プログラムの追加位置を設けるためのダミーのステップについても、関数が空であることの阻害要件とはならない。
アプリケーションプラットフォームの各階層におけるダミー関数の数は、1つでもよいし複数でもよい。また、関数名は、func1、func2等、適当なものとすればよい。引数及び戻り値の型は、あらゆるデータ型のデータを格納又は参照可能なものとしておくとよい。
ダミー関数の実装は、追加プログラムによって行う。追加プログラムの追加位置を、ダミー関数としておき、追加プログラムをダミー関数に適用しておくことで、ダミー関数が呼び出された際に追加プログラムに実装された処理を実行させることができる。その結果、当初のアプリケーションプラットフォームには含まれていなかった機能を実現する新たなAPIを、SDKプラットフォーム123、VAS124、及びコントロールサービス125等に実質的に追加することができる。
なお、ダミー関数を実装する部分や追加プログラムの適用の対象とされる部分は、ネイティブコード(CPU101が解釈可能なコード)に変換(コンパイル)されている部分に限定されてもよい。換言すれば、Java(登録商標)によって実装されている部分は、新たなAPIの追加や既存のAPIの変更に際し、ダミー関数の実装や追加プログラムの適用は必ずしも必要とはされない。Java(登録商標)によって実装されている部分は、拡張性が高く、新たなAPIの追加も容易だからである。また、Java(登録商標)言語が備える継承等によって既存のAPIの処理内容は容易に変更可能だからである。但し、このことは、Java(登録商標)によって実装されている部分に対してダミー関数が実装されたり、追加プログラムが適用されたりする実施形態を除外する趣旨ではない。
なお、アプリケーションプラットフォームのうち、SDKプラットフォーム123のAPI部分は、Java(登録商標)によって実装された部分である。一方、VAS124及びコントロールサービス125は、ネイティブコードに変換された部分である。
まず、新たなAPIの追加例についてより具体的に説明する。図5は、新たなAPIの追加例を説明するための図である。同図では、例えば、USBポート109を介して、新デバイス30(例えば、Z折りを実現する装置)が画像形成装置10に接続された例が示されている。ここで、OS1271レベルでは、ioctl等の汎用的なAPIによってデバイスドライバ1271を介して新デバイス30を制御可能である。一方、アプリケーションプラットフォームには、新デバイス30を制御するためのAPIが用意されていないこととする。
この場合、SCS1255の部分a(以下、「SCS1255a」という。他の階層についても同様の命名規則に従う。)の一つのダミー関数(以下、「SCSダミー関数」という。)を追加位置とする追加プログラム131と、VAS124aの一つのダミー関数(以下、「VASダミー関数」という。)を追加位置とする追加プログラム132とが実装される。実装された追加プログラム131及び132は、管理装置20に保存され、管理される。また、SDKプラットフォーム123aには、新デバイス30の制御要求を受け付けるためのメソッドを有する新たなクラスのラスファイルが追加される。
SCSダミー関数に適用される追加プログラム131は、例えば、SCSダミー関数の引数値に応じて、新デバイス30を制御するための引数値を指定してOS127のioctl、read、又はwrite等の汎用的のAPIを呼び出すような実装を有する。SCSダミー関数の引数には、例えば、新デバイス30に対してどのような制御を行うかを示す値が指定される。
VASダミー関数に適用される追加プログラム132は、VASダミー関数の引数値に応じた引数値を指定してSCSダミー関数を呼び出すような実装を有する。すなわち、上位の階層のダミー関数に適用される追加プログラムは、下位の階層のダミー関数を呼び出すように実装される。なお、VASダミー関数に指定された引数値がそのままSCSダミー関数の引数値とされてもよいし、VASダミー関数に指定された引数値が変換されてSCSダミー関数の引数値とされてもよい。後者は、例えば、VASダミー関数の引数に、より抽象化又は汎用化された値を指定させたい場合等に有効である。
SDKプラットフォーム123aとして追加されるクラスのメソッドは、指定された引数の内容に応じた引数値を指定してVASダミー関数を呼び出すような実装を有する。なお、当該クラスのメソッドに指定された引数値がそのままVASダミー関数の引数値とされてもよいし、当該メソッドに指定された引数値が変換されてVASダミー関数の引数値とされてもよい。
管理装置20において、操作者によって追加プログラム131及び132について画像形成装置10への転送が指示されると、管理装置20は、追加プログラム131及び132を画像形成装置10に転送する。画像形成装置10の追加プログラム制御部126は、追加プログラム131及び132を受信すると、それぞれを有効化する。すなわち、追加プログラム131はSCSダミー関数に適用され、追加プログラム132はVASダミー関数に適用された状態となる。
この状態で、SDKアプリ122は、新デバイス30を制御又は利用可能となる。図5では、Aアプリ1221が新デバイス30を制御している例が示されている。すなわち、Aアプリ1221は、SDKプラットフォーム123aとして追加されたクラスのメソッドを呼び出す(S11)。当該メソッドの引数には、Aアプリ1221が要求する制御内容に応じた値が指定される。当該メソッドは、実装内容に従いVASダミー関数を呼び出す(S12)。VASダミー関数の呼び出しに応じ、追加プログラム132が実行される。その結果、実質的にVASダミー関数からSCSダミー関数が呼び出される(S13)。SCSダミー関数の呼び出しに応じ、追加プログラム131が実行される。その結果、実質的にSCSダミー関数からOS127のAPI(ioctl、read、又はwrite等)が呼び出される(S14)。いずれのAPIが呼び出されるかは、SCSダミー関数に指定された引数値に依る。OS127は、呼び出されたAPIに応じた制御をデバイスドライバ1271を介して新デバイス30に対して行う(S15)。
以上のように、新デバイス30に対するAPIがアプリケーションプラットフォームに用意されていなくても、ダミー関数と追加プログラムとを用いることによって、実質的に新デバイス30を制御するためのAPIをアプリケーションプラットフォームに追加することができる。
続いて、既存のAPIの変更例について具体的に説明する。図6は、既存のAPIの変更例を説明するための図である。同図の前提として、所定のハードウェア(例えば、スキャナ105、プリンタ106、又はオペレーションパネル107等)について、従前よりSCS1255には通知され、SCS1255によって管理されていたパラメータ(以下、「パラメータA」という。)が有ったとする。しかし、パラメータAは、SCS1255の処理判断に用いられ、SDKアプリ122では必要とされていなかった。したがって、SCS1255が有する、当該所定のハードウェアに関する情報を提供するためのAPI(以下、「情報取得関数S」という。)において、パラメータAは、提供対象(戻り値の対象)に含まれていなかった。図6は、このような状況において、パラメータAをSDKアプリ122に参照可能とした例を示す。
この場合、情報取得関数Sを追加位置とする追加プログラム133が実装される。また、情報取得関数Sを呼び出すことにより取得される情報をSDKプラットフォーム123等に提供するためのVAS124における既存の関数(以下、「情報取得関数V」という。)を追加位置とする追加プログラム134が実装される。実装された追加プログラム133及び134は、管理装置20に保存され、管理される。
情報取得関数Sに適用される追加プログラム133は、例えば、既存の情報取得用関数Sの戻り値に対してパラメータAを追加する実装を有する。例えば、戻り値のバイト数を増加させ、増加分の領域にパラメータAを格納するようにする。また、情報取得関数Vに適用される追加プログラム134は、情報取得関数Sからの戻り値に含まれるようになるパラメータAを、情報取得関数Vの戻り値に対して追加するための実装を有する。
また、SDKプラットフォーム123において、情報取得関数Vを呼び出すことにより取得される情報をSDKアプリ122に提供するためのメソッド(以下、「情報取得メソッド」という。)を有する既存のクラスのサブクラスが実装される。当該サブクラスでは、情報取得メソッドがオーバーライドされる。オーバーライドの内容は、情報取得関数Vからの戻り値に含まれるようになるパラメータAを、情報取得メソッドの戻り値に対して追加することである。
管理装置20において、操作者によって追加プログラム133及び134について画像形成装置10への転送が指示されると、管理装置20は、追加プログラム133及び134を画像形成装置10に転送する。画像形成装置10の追加プログラム制御部126は、追加プログラム133及び134を受信すると、それぞれを有効化する。すなわち、追加プログラム133は情報取得関数Sの所定位置に適用され、追加プログラム134は情報取得関数Vの所定位置に適用された状態となる。
この状態で、SDKアプリ122は、パラメータAを取得可能となる。図6では、Aアプリ1221がパラメータAを含む所定のデバイスの情報を取得する例が示されている。
パラメータAを含む所定のデバイスの情報は、予めSCS1255に通知され、SCS1255によって管理されている(S21)。Aアプリ1221は、SDKプラットフォーム123の情報取得メソッドを呼び出す(S22)。続いて、情報取得メソッドのオーバーライド部分によって、情報取得関数Vが呼び出される(S23)。情報取得関数Vは、従前通り情報取得関数Sを呼び出す(S24)。情報取得関数Sの処理の過程において、追加位置に到達すると追加プログラム133が実行される。追加プログラム133は、SCS1255において管理されているパラメータAを、戻り値に含める処理を実行する。例えば、追加プログラム133は、SCS1255がパラメータAを記録しているメモリ102よりパラメータAの値を取得し、当該値を情報取得関数Sの戻り値に追加する。情報取得関数Sに処理の制御が戻ると、パラメータAが追加された戻り値が情報取得関数Vに返却される(S25)。続いて、情報取得関数Vの追加位置に到達すると、追加プログラム134が実行される。追加プログラム134は、情報取得関数Sの戻り値に含まれているパラメータAを、情報取得関数Vの戻り値に追加する処理を実行する。情報取得関数Vに処理の制御が戻ると、パラメータAが追加された戻り値が情報取得メソッドに返却される(S26)。情報取得メソッドは、オーバーライド部分によって、パラメータAを戻り値に含めてAアプリ1221に返却する(S27)。これにより、Aアプリ1221は、パラメータAを用いて処理を行うことが可能となる。
なお、パラメータAの取得は、新たなAPIの追加によって実現してもよい。その場合の実現方法は、図5の説明より自明であるため省略する。
続いて、新規APIの追加又は既存のAPIの変更等のための追加プログラムの適用(すなわち、機能強化等)の妥当性の検証について説明する。当該妥当性の検証は、検証アプリ1215又はSDK検証アプリ1223によって行われる。
図7は、検証アプリの機能構成例を示す図である。同図において、検証アプリ1215は、設定部1215A、取得部1215B、及び判定部1215C等を有する。
設定部1215Aは、テスト条件及び判定条件等の設定を受け付け、設定されたテスト条件及び判定条件をHDD104に記録する。テスト条件とは、いずれのリソースの使用状況(例えば、消費量を示す情報。以下、「リソース情報」という。)をどのようなタイミングで取得するかを示す情報である。すなわち、テスト条件は、リソース情報の取得方法を示す情報である。テスト条件の一例として、CPUの使用率を1秒間隔で取得する、仮想メモリの使用率(又は物理メモリの使用率)を1秒間隔で取得する等が挙げられる。仮想メモリの使用率(又は物理メモリの使用率)は、スワッピングの発生頻度を把握するための情報として用いることができる。スワッピングの頻度が高くなると、画像形成装置10の性能は著しく劣化する傾向が有る。したがって、スワッピングの発生頻度を把握することは、妥当性の検証において重要な要素となりうる。
また、リソース情報を取得する期間(開始時刻及び終了時刻、又は開始時からの時間)を示す情報がテスト条件に含まれていてもよい。なお、リソース情報の取得対象とされるリソースは、一つに限定されない。また、リソースとは、RAM102、CPU101、HDD104、電源等のハードウェアに限られず、ファイルディスクリプタや仮想メモリ等、ソフト的なものも含まれる。
判定条件とは、機能強化等の妥当性を判定するための基準を示す情報である。判定条件は、テスト条件に基づいて取得されるリソース情報に対する条件として設定される。判定条件の一例として、CPUの使用率の平均が追加プログラムの適用前と比較して+15%以下であること、仮想メモリの使用率が追加プログラムの適用前と比較して+10%以下であること、等が挙げられる。なお、判定条件は、必ずしも追加プログラムの適用前との比較でなくてもよい。例えば、CPUの使用率の平均がXX以下であること。といったように、絶対値との比較を示すものであってもよい。
取得部1215Bは、テスト条件に基づいてリソース情報を取得する。判定部1215Cは、取得部1215Bによって取得されたリソース情報と判定条件とに基づいて妥当性を判定する。
なお、SDK検証アプリ1223も、検証アプリ1215と同様の機能構成を有する。但し、SDK検証アプリ1223は、Java(登録商標)仮想マシン上で動作するため、Java(登録商標)仮想マシンプロセスにおける仮想的なリソースのリソース情報に基づいて、妥当性を判定する。
以下、妥当性の検証に関する処理手順について説明する。図8は、テスト条件及び判定条件の設定処理の処理手順を説明するためのシーケンス図である。同図の処理は、追加プログラムを管理装置20から画像形成装置10に転送する前に実行しておく。
ステップS101において、例えば、管理者によってテスト条件及び判定条件が設定される。テスト条件及び判定条件の設定は、設定部1215Aがオペレーションパネル107又は画像形成装置10とネットワークを介して接続されるPC(Personal Computer)等に表示させる設定画面を介して行われる。続いて、設定部1215Aは、設定されたテスト条件及び判定条件をHDD104に記録(保存)する(S102)。
なお、図8の処理は、検証アプリ1215及びSDK検証アプリ1223のそれぞれについて実行される。
続いて、図9は、検証アプリによる処理手順を説明するためのシーケンス図である。
検証アプリ1215の取得部1215Bは、例えば、テスト条件等の設定に応じて、リソース情報の取得を開始し、取得されたリソース情報をHDD104に記録する(S201)。リソース情報の取得は、テスト条件に応じて定期的に行われうる。
その後、追加プログラム制御部126は、管理装置20より追加プログラム及び当該追加プログラムの有効化の指示を受信する(S202)。続いて、追加プログラム制御部126は、受信された追加プログラムを有効化する(S203)。すなわち、当該追加プログラムが、適用対象のプログラムの追加位置に適用される。続いて、追加プログラム制御部126は、追加プログラムの有効化を検証アプリ1215に通知する(S204)。当該通知において、追加プログラムの識別子(プログラムID)が指定されてもよい。
追加プログラムの有効化が通知された後においても、検証アプリ1215は、テスト条件に従ったリソース情報の取得を継続する(S205)。但し、検証アプリ1215は、追加プログラムの有効化の通知前に取得されたリソース情報(S201において取得されたリソース情報)と、通知後に取得されたリソース情報とを区別可能なように記録する。例えば、両者のリソース情報が記録されるファイルを異なるものとしてもよいし、時系列に記録されるリソース情報の履歴中に、追加プログラムの有効化が行われたことを示す行を追加してもよい。
続いて、検証アプリ1215の判定部1215Cは、リソース情報と判定条件とに基づいて妥当性を判定する(S206)。例えば、判定条件が、追加プログラムの有効化前後のリソース情報の比較を示すものである場合、ステップS201において取得されたリソース情報とステップS205において取得されたリソース情報との差分に基づく値と、判定条件との比較に基づいて妥当性が判定される。この場合、追加プログラムの有効化前に取得されたリソース情報と、有効化後に取得されたリソース情報との差分は、追加プログラムの適用による影響によるものとして扱われる。一方、判定条件が絶対値との比較を示すものである場合、ステップS205において取得されたリソース情報と当該絶対値との比較に基づいて妥当性が判定される。
なお、ステップS206は、テスト条件に基づいてリソース情報の取得期限を特定可能な場合は、当該期限の到来に応じて自動的に実行されればよい。テスト条件に基づいてリソース情報の期限を特定可能な場合とは、例えば、テスト条件に、取得回数(例えば、10回)又は取得期間(例えば、30分)等が指定されている場合である。一方、テスト条件に基づいてリソース情報の取得期限を特定できない場合は、追加プログラムの有効化から所定時間後に判定部1215Cが自動的に実行してもよいし、オペレーションパネル107等を介して入力される操作者の指示入力に応じて実行されてもよい。
続いて、判定部1215Cは、妥当性の判定結果(妥当であるか否かを示す情報)を追加プログラム制御部126に通知する(S207)。追加プログラム制御部126は、当該判定結果に応じた処理を実行する。例えば、当該判定結果が妥当でないことを示す場合、追加プログラム制御部126は、追加プログラムを無効化する(S208)。一方、当該判定結果が妥当であることを示す場合、追加プログラム制御部126は、追加プログラムを有効化したままとする。
続いて、リソース情報の取得処理(S205)及び妥当性の判定処理(S206)の詳細について説明する。
図10は、リソース情報の取得処理及び妥当性の判定処理の第一の例を説明するためのシーケンス図である。同図の処理は、図9のステップS204における追加プログラムの有効化の通知に応じて開始される。
検証アプリ1215の取得部1215Bは、設定部1215Aに対してテスト条件の取得を要求する(S301)。設定部1215Aは、HDD104に保存されているテスト条件を取得し、取得部1215Bに出力する(S302)。続いて、取得部1215Bは、テスト条件に応じてリソース情報を取得する。同図では、定期的にリソース情報が取得される(ポーリングされる)例が示されている。リソース情報がポーリングされる場合、ポーリング期間、ポーリング間隔、及びポーリング対象のリソースの識別情報等がテスト条件に含まれているのが好適である。
S303によって示される破線の矩形で囲まれた部分は、コントロールサービス125が有するリソース情報のポーリング用のAPIを介してリソース情報を取得しているステップを示す。この場合、取得部1215Bは、VAS124を介してコントロールサービス125に対してリソース情報のポーリングを要求する。コントロールサービスは、当該要求に応じてリソース情報をポーリングし、ポーリング結果を取得部1215Bに出力する。
また、S304によって示される破線の矩形で囲まれた部分は、取得部1215Bが直接的にOS127対してリソース情報のポーリングを行っているステップを示す。OS127を介して取得されたリソース情報は、ポーリングのたびに取得部1215Bに返却される。
但し、ステップS303及びS304の処理内容は、テスト条件においていずれのリソースのリソース情報が取得対象とされているかに応じて異なりうる。例えば、コントロールサービス125を介して取得可能なリソース情報が取得対象でない場合、ステップS303に示されるような処理手順は実行されない。
なお、図9のステップS201においても、ステップS301〜S304と同様の処理手順が実行される。
リソース情報の取得が終了すると(例えば、テスト条件に指定されたリソースの取得期間が終了すると)、判定部1215Cは、判定条件の取得を設定部1215Aに要求する(S305)。設定部1215Aは、HDD104に保存されている判定条件を取得し、判定部1215Cに出力する(S306)。続いて、判定部1215Cは、判定条件と、取得部1215Bによって取得されたリソース情報とに基づいて妥当性を判定する(S307)。
図10に示されるようなポーリングによるリソース情報の取得(測定)は、瞬間的に発生する最大消費量を検出できない可能性があるが、単位時間当たりの平均値が重要となるようなリソース情報に好適である。例えば,CPUの使用率又は仮想メモリの使用率については、平均的にどの程度使用されたかが重要であるため、ポーリングによる取得が好適である。
なお、リソース情報をポーリングする場合、画像形成装置10が実行するジョブ等に負荷をかけない程度にポーリング間隔を大きくしたり、又はポーリングによる負荷を考慮してリソース情報を補正したりしてもよい。
続いて、図11は、リソース情報の取得処理及び妥当性の判定処理の第二の例を説明するためのシーケンス図である。テスト条件及び判定条件に応じて、図10の変わりに図11に示される処理が実行されてもよい。
ステップS401及びS402は、図10のステップS301及びS302と同様である。続いて、検証アプリ1215の取得部1215Bは、例えば、OS127に対してコールバック関数と、当該コールバック関数を呼び出す条件(以下、「呼び出し条件」という。)とを登録する(S403)。呼び出し条件は、テスト条件に基づく。すなわち、図11の場合のテスト条件は、例えば、「CPUの使用率がN%を超えた」等、いずれかのリソースのリソース情報が所定の状態となったことを示すものであることが想定される。この場合、呼び出し条件は、「CPUの使用率がN%を超えた」等、である。なお、それぞれ呼び出し条件が異なる複数のコールバック関数が登録されてもよい。
その後、OS127は、ハードウェア(H/W)からのリソースの状態の変化に応じて通知されるイベントに基づいて、登録されている呼び出し条件のうちの少なくとも一つが満たされたことを検知すると、当該呼び出し条件に対応するコールバック関数を呼び出す(S405)。
検証アプリ1215の判定部1215Cは、当該コールバック関数の呼び出しに応じ、判定条件の取得を設定部1215Aに要求する(S406)。設定部1215Aは、HDD104に保存されている判定条件を取得し、判定部1215Cに出力する(S407)。続いて、判定部1215Cは、判定条件と、呼び出されたコールバック関数に係る呼び出し条件(テスト条件)とに基づいて妥当性を判定する(S408)。例えば、判定条件が、「CPU使用率が70%以下であること」であり、呼び出し条件が「CPU使用率が70%以下を超えた」である場合、コールバックの呼び出しにより判定条件は満たされていないことが検知されたことになる。したがって、この場合、妥当でないと判定される。
図11に示されるようなイベントドリブン型のリソース情報の取得(測定)は、瞬間的に発生する最大値が重要となるリソース情報に好適である。例えば,ファイルディスクリプタ数等の制限のあるリソース情報については,瞬間的にでも発生する最大値が重要となるため、イベントドリブン型による取得が好適である。
なお、図9〜図11は、検証アプリ1215について説明したが、SDK検証アプリ1223についても同様でよい。
ところで、上記では、追加又は変更されたAPIを呼び出すSDKアプリ122(例えば、図5又は図6におけるAアプリ1221)による当該APIの呼び出しとは非同期にリソース情報の取得が行われる。そこで、当該APIを呼び出すSDKアプリ122自身が、当該APIの呼び出し時にリソース情報の取得を実行し、取得されたリソース情報に基づいて妥当性を判定するようにしてもよい。又は、SDKアプリ122が、当該APIの呼び出し時に、検証アプリ1215又はSDK検証アプリ1223に対して、APIを呼び出すことを通知してもよい。検証アプリ1215又はSDK検証アプリ1223は、当該通知に応じてリソース情報を取得するようにしてもよい。
以上のようにすることにより、当該APIの呼び出し時のリソース情報を適時的に取得し、適時的に取得されたリソース情報に基づいて妥当性を判定することができる。
上述したように本実施の形態における画像形成装置10によれば、新たなAPIの追加や既存のPIの変更等を容易化することができる。また、当該追加や変更による影響(妥当性)を適切に検証することができる。したがって、新たなAPIの追加や既存のPIの変更等による画像形成装置10の性能の顕著な劣化等を適切に防止することができる。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10 画像形成装置
20 管理装置
40 ネットワーク
101 CPU
102 RAM
103 ROM
104 HDD
105 スキャナ
106 プリンタ
107 オペレーションパネル
108 SDカードスロット
109 USBポート
110 ネットワークインタフェース
121 標準アプリ
122 SDKアプリ
123 SDKプラットフォーム
124 VAS
125 コントロールサービス
126 追加プログラム制御部
127 OS
1211 スキャンアプリ
1212 印刷アプリ
1213 コピーアプリ
1214 FAXアプリ
1215 検証アプリ
1215A 設定部
1215B 取得部
1215C 判定部
1221 Aアプリ
1222 Bアプリ
1223 SDK検証アプリ
1251 OCS
1252 ECS
1253 FCS
1254 NCS
1255 SCS
1271 デバイスドライバ
特開2008−16013号公報

Claims (12)

  1. アプリケーションプラットフォーム有する画像形成装置であって、
    前記アプリケーションプラットフォームは、実装が空であるインタフェースを有し、
    他のプログラムに動的に処理を割り込ませることが可能な追加プログラムを前記インタフェースに適用する適用手段を有する画像形成装置。
  2. 前記アプリケーションプラットフォームは、複数の階層を有し、前記階層ごとに実装が空であるインタフェースを有し、
    前記適用手段は、複数の前記追加プログラムをそれぞれが対応する前記階層における前記インタフェースに適用し、
    上位の前記階層の前記追加プログラムは、下位の階層の前記インタフェースを呼び出す請求項1記載の画像形成装置。
  3. 前記適用手段による前記追加プログラムの適用に応じ、当該画像形成装置のリソース情報を取得する取得手段と、
    取得されたリソース情報を設定された判定条件と比較することにより、前記追加プログラムの適用の妥当性を判定する判定手段とを有する請求項1又は2記載の画像形成装置。
  4. 前記取得手段は、前記追加プログラムの適用前より前記リソース情報を取得し、
    前記判定手段は、前記適用前に取得された前記リソース情報と前記適用に応じて取得された前記リソース情報と前記判定条件に基づいて、前記追加プログラムの適用の妥当性を判定する請求項3記載の画像形成装置。
  5. アプリケーションプラットフォーム有する画像形成装置が実行する機能追加方法であって、
    前記アプリケーションプラットフォームは、実装が空であるインタフェースを有し、
    他のプログラムに動的に処理を割り込ませることが可能な追加プログラムを前記インタフェースに適用する適用手順を前記画像形成装置が実行する機能追加方法。
  6. 前記アプリケーションプラットフォームは、複数の階層を有し、前記階層ごとに実装が空であるインタフェースを有し、
    前記適用手順は、複数の前記追加プログラムをそれぞれが対応する前記階層における前記インタフェースに適用し、
    上位の前記階層の前記追加プログラムは、下位の階層の前記インタフェースを呼び出す請求項5記載の機能追加方法。
  7. 前記適用手順による前記追加プログラムの適用に応じ、当該画像形成装置のリソース情報を取得する取得手順と、
    取得されたリソース情報を設定された判定条件と比較することにより、前記追加プログラムの適用の妥当性を判定する判定手順とを有する請求項5又は6記載の機能追加方法。
  8. 前記取得手順は、前記追加プログラムの適用前より前記リソース情報を取得し、
    前記判定手順は、前記適用前に取得された前記リソース情報と前記適用に応じて取得された前記リソース情報と前記判定条件に基づいて、前記追加プログラムの適用の妥当性を判定する請求項7記載の機能追加方法。
  9. 画像形成装置が有するアプリケーションプラットフォームは、実装が空であるインタフェースを有し、
    他のプログラムに動的に処理を割り込ませることが可能な追加プログラムを前記インタフェースに適用する適用手順を前記画像形成装置に実行させるためのプログラム。
  10. 前記アプリケーションプラットフォームは、複数の階層を有し、前記階層ごとに実装が空であるインタフェースを有し、
    前記適用手順は、複数の前記追加プログラムをそれぞれが対応する前記階層における前記インタフェースに適用し、
    上位の前記階層の前記追加プログラムは、下位の階層の前記インタフェースを呼び出す請求項9記載のプログラム。
  11. 前記適用手順による前記追加プログラムの適用に応じ、当該画像形成装置のリソース情報を取得する取得手順と、
    取得されたリソース情報を設定された判定条件と比較することにより、前記追加プログラムの適用の妥当性を判定する判定手順とを前記画像形成装置に実行させる請求項9又は10記載のプログラム。
  12. 前記取得手順は、前記追加プログラムの適用前より前記リソース情報を取得し、
    前記判定手順は、前記適用前に取得された前記リソース情報と前記適用に応じて取得された前記リソース情報と前記判定条件に基づいて、前記追加プログラムの適用の妥当性を判定する請求項11記載のプログラム。
JP2009283310A 2009-12-14 2009-12-14 画像形成装置、機能追加方法、及びプログラム Pending JP2011123842A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009283310A JP2011123842A (ja) 2009-12-14 2009-12-14 画像形成装置、機能追加方法、及びプログラム
US12/963,687 US8635633B2 (en) 2009-12-14 2010-12-09 Image forming apparatus, function adding method, and computer-readable recording medium
CN201010592053.9A CN102123217B (zh) 2009-12-14 2010-12-13 图像形成装置和功能追加方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009283310A JP2011123842A (ja) 2009-12-14 2009-12-14 画像形成装置、機能追加方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2011123842A true JP2011123842A (ja) 2011-06-23

Family

ID=44144396

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009283310A Pending JP2011123842A (ja) 2009-12-14 2009-12-14 画像形成装置、機能追加方法、及びプログラム

Country Status (3)

Country Link
US (1) US8635633B2 (ja)
JP (1) JP2011123842A (ja)
CN (1) CN102123217B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013025739A (ja) * 2011-07-26 2013-02-04 Kyocera Document Solutions Inc プリンタドライバの印刷可能範囲エミュレート方法
JP2013210921A (ja) * 2012-03-30 2013-10-10 Ricoh Co Ltd 情報処理装置、プログラム及び記録媒体
JP2015228573A (ja) * 2014-05-30 2015-12-17 京セラドキュメントソリューションズ株式会社 画像形成装置、画像形成方法、及び制御プログラム
JP2016210138A (ja) * 2015-05-12 2016-12-15 コニカミノルタ株式会社 画像形成装置及びデータ構造
US10587766B2 (en) 2018-03-16 2020-03-10 Ricoh Company, Ltd. Electronic device, screen display method, and computer program product for changing a display appearance of a screen based on a parameter received from an application

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013168129A (ja) 2012-01-18 2013-08-29 Ricoh Co Ltd 情報処理システム、データ提供装置、電子機器、情報処理方法、データ提供方法、データ取得方法、及びプログラム
JP6060651B2 (ja) 2012-01-18 2017-01-18 株式会社リコー 電子機器、情報処理システム、情報処理装置、情報処理方法、及びプログラム
JP5991104B2 (ja) 2012-09-18 2016-09-14 株式会社リコー 情報処理装置、情報処理方法、及びプログラム
JP6248814B2 (ja) * 2014-05-30 2017-12-20 京セラドキュメントソリューションズ株式会社 画像形成装置、画像形成方法、及び制御プログラム
JP6022508B2 (ja) 2014-07-08 2016-11-09 京セラドキュメントソリューションズ株式会社 画像形成装置、画像形成方法及び画像形成プログラム
JP7059696B2 (ja) 2018-03-02 2022-04-26 株式会社リコー 機器、情報処理システム、情報処理方法及びプログラム
JP7069969B2 (ja) 2018-03-29 2022-05-18 株式会社リコー 情報処理装置、情報処理方法及び情報処理プログラム
JP7172342B2 (ja) 2018-09-19 2022-11-16 富士フイルムビジネスイノベーション株式会社 情報処理装置および画像処理装置
US11790053B2 (en) 2019-03-13 2023-10-17 Ricoh Company, Ltd. Information processing system, server, non-transitory computer-readable medium, and method for controlling assignment of license
CN110659085A (zh) * 2019-09-27 2020-01-07 泉州华中科技大学智能制造研究院 一种Linux内核模块中有限数量函数重载的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11110194A (ja) * 1997-10-06 1999-04-23 Toshiba Corp 外部ライブラリ関数との結合方法ならびに同方法がプログラムされ記録される記録媒体
JP2004098658A (ja) * 2002-07-19 2004-04-02 Ricoh Co Ltd 画像形成装置及びラッピング処理方法並びにプログラム
JP2007012057A (ja) * 2001-09-21 2007-01-18 Ricoh Co Ltd 画像形成装置およびプロセス間通信方法
JP2008186103A (ja) * 2007-01-29 2008-08-14 Fujitsu Ltd 被テストプログラム資源競合テスト方法及び競合プログラム
JP2009146387A (ja) * 2007-11-19 2009-07-02 Ricoh Co Ltd 情報処理装置、情報処理方法及びプログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10232788A (ja) 1996-12-17 1998-09-02 Fujitsu Ltd 信号処理装置及びソフトウェア
JP2001175576A (ja) 1999-10-04 2001-06-29 Canon Inc 情報処理装置、情報処理システム、情報処理方法、及び記憶媒体
JP4136325B2 (ja) 2000-08-31 2008-08-20 株式会社リコー 画像形成システム、ソフトウエア取得方法、画像形成装置およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US7117493B2 (en) 2001-03-28 2006-10-03 Ricoh Company, Ltd. Image formation system, software acquisition method, and computer product
US7318083B2 (en) 2001-08-27 2008-01-08 Ricoh Company, Ltd. Information processing system
US20040109188A1 (en) * 2002-09-13 2004-06-10 Kunihiro Akiyoshi Image forming apparatus and methods used in the image forming apparatus
CN100486295C (zh) * 2002-09-13 2009-05-06 株式会社理光 成像装置及其方法
US8264717B2 (en) * 2005-07-11 2012-09-11 Ricoh Company, Ltd. Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium
JP4791910B2 (ja) * 2005-08-26 2011-10-12 株式会社リコー 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体
JP5025192B2 (ja) * 2005-09-16 2012-09-12 株式会社リコー 機器、情報処理方法、情報処理プログラム、及び記録媒体
JP5013742B2 (ja) * 2005-12-15 2012-08-29 株式会社リコー 通信装置、情報処理システム、アプリケーション実行方法、アプリケーション実行プログラム及び記録媒体
JP5090790B2 (ja) 2006-06-07 2012-12-05 株式会社リコー 機器、ライセンス管理方法、ライセンス管理プログラム、及びライセンス管理システム
GB2443229B (en) * 2006-08-23 2009-10-14 Cramer Systems Ltd Capacity management for data networks
US20090006071A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Methods for Definition and Scalable Execution of Performance Models for Distributed Applications
CN101441566B (zh) * 2008-11-18 2012-04-25 腾讯科技(深圳)有限公司 一种在嵌入式平台上动态链接程序的方法
US8769482B2 (en) * 2008-12-16 2014-07-01 International Business Machines Corporation Method and system for building an application

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11110194A (ja) * 1997-10-06 1999-04-23 Toshiba Corp 外部ライブラリ関数との結合方法ならびに同方法がプログラムされ記録される記録媒体
JP2007012057A (ja) * 2001-09-21 2007-01-18 Ricoh Co Ltd 画像形成装置およびプロセス間通信方法
JP2004098658A (ja) * 2002-07-19 2004-04-02 Ricoh Co Ltd 画像形成装置及びラッピング処理方法並びにプログラム
JP2008186103A (ja) * 2007-01-29 2008-08-14 Fujitsu Ltd 被テストプログラム資源競合テスト方法及び競合プログラム
JP2009146387A (ja) * 2007-11-19 2009-07-02 Ricoh Co Ltd 情報処理装置、情報処理方法及びプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013025739A (ja) * 2011-07-26 2013-02-04 Kyocera Document Solutions Inc プリンタドライバの印刷可能範囲エミュレート方法
JP2013210921A (ja) * 2012-03-30 2013-10-10 Ricoh Co Ltd 情報処理装置、プログラム及び記録媒体
JP2015228573A (ja) * 2014-05-30 2015-12-17 京セラドキュメントソリューションズ株式会社 画像形成装置、画像形成方法、及び制御プログラム
JP2016210138A (ja) * 2015-05-12 2016-12-15 コニカミノルタ株式会社 画像形成装置及びデータ構造
US10587766B2 (en) 2018-03-16 2020-03-10 Ricoh Company, Ltd. Electronic device, screen display method, and computer program product for changing a display appearance of a screen based on a parameter received from an application

Also Published As

Publication number Publication date
CN102123217A (zh) 2011-07-13
CN102123217B (zh) 2014-10-15
US20110145843A1 (en) 2011-06-16
US8635633B2 (en) 2014-01-21

Similar Documents

Publication Publication Date Title
JP2011123842A (ja) 画像形成装置、機能追加方法、及びプログラム
JP5418442B2 (ja) 情報処理装置、電子機器、更新処理支援方法、更新処理支援プログラム、及び更新処理支援システム
JP5699500B2 (ja) インストールプログラム、インストール方法、画像形成装置、及び記録媒体
JP5440252B2 (ja) 情報処理装置、外部装置、情報処理システム、情報処理方法、及びプログラム
JP6295563B2 (ja) 情報処理システム、機器、情報処理方法、及び情報処理プログラム
JP5786535B2 (ja) 機器、情報処理方法、情報処理プログラム、及び記録媒体
JP2011191951A (ja) 電子機器、情報処理方法、及び情報処理プログラム
JP2014170515A (ja) 機器、情報記録プログラム、及び情報記録方法
JP2011086142A (ja) 画像形成装置及びプログラム操作方法
CN109660688B (zh) 信息处理装置及其控制方法
JP6179200B2 (ja) 情報処理装置、機器、情報処理システム、情報処理方法、及び情報処理プログラム
JP2007122348A (ja) 画像形成装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体
JP2011180771A (ja) 情報処理装置、エミュレーションシステム、及びエミュレーションプログラム
JP2009137165A (ja) 画像形成装置、情報処理方法及びプログラム
JP2013164879A (ja) 情報処理装置、互換性評価方法、及びプログラム
JP2012181690A (ja) 画像形成装置、更新方法、更新プログラム、及び記録媒体
JP6089558B2 (ja) ドライバ管理プログラム、アンインストールプログラム、及び、情報処理装置
JP2009020863A (ja) 画像形成装置、情報処理装置、障害解析支援方法、及び障害解析支援プログラム
JP2010218469A (ja) 情報処理装置、情報処理方法、プログラムおよび記録媒体
JP2013152743A (ja) 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体
JP6089794B2 (ja) 機器、情報処理システム、情報処理方法、及びプログラム
JP5337686B2 (ja) アプリケーションプログラム生成方法および画像形成装置
JP5263358B2 (ja) 情報処理装置、プログラム制御方法、及び制御プログラム
US8869137B2 (en) Information processing apparatus that automatically and sequentially displays graphical user interface images and recording medium storing program
JP2015056108A (ja) 情報処理システム、模倣方法、及び模倣プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140422

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140521

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141021