JP2004185593A - Image forming apparatus and application execution method - Google Patents

Image forming apparatus and application execution method Download PDF

Info

Publication number
JP2004185593A
JP2004185593A JP2003199947A JP2003199947A JP2004185593A JP 2004185593 A JP2004185593 A JP 2004185593A JP 2003199947 A JP2003199947 A JP 2003199947A JP 2003199947 A JP2003199947 A JP 2003199947A JP 2004185593 A JP2004185593 A JP 2004185593A
Authority
JP
Japan
Prior art keywords
application
image forming
program
forming apparatus
screen
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
JP2003199947A
Other languages
Japanese (ja)
Inventor
Tsutomu Oishi
勉 大石
Hiroko Sugiura
裕子 杉浦
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 JP2003199947A priority Critical patent/JP2004185593A/en
Priority to EP03254672A priority patent/EP1385089A3/en
Priority to US10/626,608 priority patent/US7554685B2/en
Priority to CN 200510113871 priority patent/CN1818871B/en
Priority to CNB03160255XA priority patent/CN1273888C/en
Publication of JP2004185593A publication Critical patent/JP2004185593A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To obtain an image forming apparatus and application execution method for easily executing an application. <P>SOLUTION: This image forming apparatus has a service module performing system side processing regarding image forming process and is structured so as to enable to load the application other than the service module. The apparatus comprises a virtual machine for executing the applications and an application management part for managing the applications to be executed by the virtual machine. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
この発明は、アプリケーションを容易に実行することができる画像形成装置およびアプリケーション実行方法に関するものである。
【従来の技術】
近年では、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を1つの筐体内に収納した画像形成装置(以下、「複合機」という。)が知られている。この複合機は、1つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応した3種類のソフトウェアを設け、これらのソフトウェアを切り替えることによって、当該装置をプリンタ、コピー、スキャナ又はファクシミリ装置として動作させるものである。
【0002】
このような従来の複合機では、利用者に対し複合機の各種操作を行わせるためのオペレーションパネルが設けられ、このオペレーションパネルに操作画面の表示およびタッチ操作入力を行わせるための操作表示部を表示している。従来の複合機では、予め提供される機能が定められていたため、利用者が複合機に対して行う操作も大きな変更はなく、操作表示部の画面表示やタッチ操作による動作をカスタマイズする必要性はない。このため、従来の複合機には操作表示部のカスタマイズ機能は搭載されていなかった。
【0003】
【特許文献1】
特開2002−152446号公報
【0004】
【発明が解決しようとする課題】
ところで、このような従来の複合機では、プリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェアをそれぞれ別個に設けているため、各ソフトウェアの開発に多大の時間を要する。このため、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピー又はファクシミリなどの各ユーザサービスにそれぞれ固有の処理を行うアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも2つが共通に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた画像形成装置(複合機)を発明した。なお、各種コントロールサービスが行う処理をシステム側の処理と呼ぶ。
【0005】
このような新規な複合機では、アプリケーションと、ハードウェア資源にアクセスするような開発が難しい処理を行うコントロールサービスとを別個に設けているため、複合機の出荷後にユーザもしくは第三者であるサードベンダが画像形成処理などにかかるアプリケーションとして新規な外部アプリケーションを開発して複合機に搭載可能な構成となっている。
【0006】
このため、新たに開発された外部アプリケーションの起動や実行中に操作表示部における画面表示やタッチ操作によって、予め提供されている機能とは異なる実行処理を行わせたい場合がある。このように、新規な複合機では、操作表示部のカスタマイズという、出荷後に外部アプリケーションを搭載することを想定していない従来の複合機では問題にならなかった新規な課題が生じてくる。
【0007】
このような操作表示部のカスタマイズを、外部アプリケーションの開発段階でソースコードを記述し、ソースコードをコンパイルおよびリンクすることによって行うことが考えられる。すなわち、外部アプリケーションの開発段階で、外部アプリケーション自体の処理の中に操作表示部のタッチ操作に伴う実行処理を開発する場合が多くなる。この場合、操作表示部のタッチ操作に伴う実行処理の検証を逐次行いながら外部アプリケーション自体の開発を進めていくことがプログラム開発効率上好ましい。しかしながら、タッチ操作に伴う実行処理に障害を検出するたびに、ソースコードの修正、再コンパイル、再リンクを行って、開発対象の複合機に再インストールし、動作検証を行わなければならないとすると、プログラム開発の効率が悪くなるという問題がある。
【0008】
また、操作表示部のカスタマイズに限らず、複合機とは別のPC等の環境でのプログラムの作成と、複合機での動作検証とによる従来のプログラム開発は効率が悪いという問題がある。
【0009】
更に、効率よくアプリケーションプログラムを開発することができたとしても、当該プログラムを複合機に格納して実行するのに手間がかかるようでは利便性に問題がある。
【0010】
この発明は上記に鑑みてなされたもので、アプリケーションを容易に実行可能な画像形成装置およびアプリケーション実行方法を得ることを目的とする。
【課題を解決するための手段】
上記の課題は以下の発明により解決される。
【0011】
請求項1に記載の発明は、画像形成処理に関するシステム側の処理を行うサービスモジュールを有し、当該サービスモジュールとは別にアプリケーションを搭載可能に構成された画像形成装置であり、アプリケーションを実行する仮想マシンと、当該仮想マシンにより実行されるアプリケーションを管理するアプリケーション管理部とを備えたものである。
【0012】
本発明によれば、仮想マシン上で動作するアプリケーションを画像形成装置で実行できる。一般に仮想マシンは機種の違いを吸収するので、アプリケーションを容易に画像形成装置上で実行できる。
【0013】
請求項2に記載の発明は、前記仮想マシンに代えてインタプリタを備えたものであり、請求項1の発明と同様の効果を奏する。
【0014】
請求項3に記載の発明は、請求項1の記載において、前記アプリケーションはJava(登録商標)プログラムであり、前記画像形成装置は、当該Java(登録商標)プログラムが参照するクラスライブラリを備えるものである。
【0015】
本発明によれば、クラスライブラリの提供する種々の機能を利用したアプリケーションを実行できる。
【0016】
請求項4に記載の発明は、請求項3の記載において、前記クラスライブラリは、前記画像形成装置の表示部への画面表示を行うためのクラスを含むものである。
【0017】
請求項5に記載の発明は、請求項1又は2の記載において、前記アプリケーション管理部は、前記画像形成装置に接続される記憶媒体から、又はネットワークを介して前記画像形成装置に接続されるサーバから、アプリケーションを前記画像形成装置にロードするローダーである。
【0018】
本発明によれば、ローダーがアプリケーションをロードするので、容易にアプリケーションを実行できる。
【0019】
請求項6に記載の発明は、請求項1又は2の記載において、前記ローダーは、アプリケーションが前記画像形成装置にロードされているか否かを判断し、ロードされていれば当該アプリケーションを実行し、ロードされていなければローダーの画面を表示するものである。
【0020】
本発明によれば、アプリケーションを容易に実行できる。また、アプリケーションが存在しない場合には、ローダーの画面が表示されるので、容易にアプリケーションをロードできる。
【0021】
請求項7に記載の発明は、請求項1又は2の記載において、前記ローダーは、アプリケーションロード画面を表示し、ユーザにより指定された場所からアプリケーションをダウンロードするものである。
【0022】
請求項8に記載の発明は、請求項7の記載において、前記ローダーは、アプリケーションのリストを表示し、ユーザにより選択されたアプリケーションをダウンロードする。
【0023】
本発明によっても容易にアプリケーションをロードでき、実行できる。
【0024】
請求項9に記載の発明は、請求項7の記載において、前記場所は、アプリケーションを格納するWebサーバ又はFTPサーバであるとするものである。
【0025】
本発明により、URLを指定するだけでアプリケーションをダウンロードできる。
【0026】
請求項10に記載の発明は、請求項7の記載において、前記ローダーは、ダウンロードしたアプリケーションが、前記場所において更新されているか否かを所定の間隔でチェックするものである。
【0027】
本発明によれば、バージョンアップしたアプリケーションを容易に取得できる。
【0028】
請求項11に記載の発明は、請求項10の記載において、前記ローダーは、前記所定の間隔を入力するための画面を表示し、ユーザからの指示に基づき当該所定の間隔を設定する。これにより間隔を設定できる。
【0029】
請求項12に記載の発明は、請求項1又は2の記載において、アプリケーションを連結して、連結されたアプリケーションにより一連の処理を実行させる連結手段を更に備えるものである。
【0030】
本発明により、アプリケーション実行のカスタマイズを容易に行うことが可能となる。
【0031】
請求項13に記載の発明は、請求項12の記載において、前記連結手段は、所定のアプリケーションと、その所定のアプリケーションに接続される候補となる複数のアプリケーションを示す画面を表示し、当該複数のアプリケーションの中からユーザにより選択されたアプリケーションを前記所定のアプリケーションに接続するものである。
【0032】
本発明により、ユーザは視覚的にアプリケーション実行のカスタマイズを行うことが可能となる。
【0033】
請求項14〜26に記載の発明は、上記画像形成装置の機能を実現するためのプログラムの発明である。請求項27に記載の発明は、そのプログラムを記録した記録媒体である。この発明によっても画像形成装置の発明と同様の効果を奏する。また、請求項28〜31に記載の発明は、ローダーによりアプリケーションをダウンロードして実行するアプリケーション実行方法の発明である。この発明によっても画像形成装置の発明と同様の効果を奏する。
【0034】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる画像形成装置および操作表示部プログラム生成方法の好適な実施の形態を詳細に説明する。
【0035】
(実施の形態1)
図1は、この発明の実施の形態1である画像形成装置(以下、「複合機」という)の主要部の構成とネットワーク構成を示すブロック図である。実施の形態1にかかる複合機100は、インターネットに接続され、当該インターネットに接続されたPC(Personal Computer )などのクライアント端末から複合機の操作を行うオペレーションパネルの操作表示部のカスタマイズプログラムの入力およびデバッグ作業を行うことを可能としたものである。
【0036】
図1に示すように、複合機100とPC200は、インターネット220で接続されており、通信プロトコルとしてTCP/IPを利用している。複合機100は、複合機初期化部129と、プログラム起動部131と、プログラミングサービス132と、インタプリタ134と、NCS(ネットワークコントロールサービス)128と、httpd(httpデーモン)106と、共有メモリ105と、HDD103とを備えた構成となっている。
【0037】
プログラミングサービス132は、ネットワークに接続されたクライアント端末としてのPC200のWEBブラウザに後述するhttpファイルで構成されたWEBページであるプログラミング画面201を表示し、このプログラミング画面201からオペレーションパネル210の操作表示部のカスタマイズプログラムを入力させるものである。また、プログラミングサービス132は、PCから入力されたカスタマイズプログラムをHDD103のカスタマイズ領域として作成されたカスタマイズディレクトリ212に保存する。さらに、プログラミングサービス132は、複合機100上でカスタマイズプログラムが実行されるように、後述する起動設定ファイル211に入力されたカスタマイズプログラムを登録する。
【0038】
ここで、プログラミングサービス132とPC200のWEBブラウザの間のプログラミング画面などのhttpファイルの転送は、httpプロトコルに従って行われる。このため、プログラミングサービス132は、Webサーバ(http サーバ)としての役割も担っている。
【0039】
カスタマイズプログラムは、インタプリタで解釈可能な言語で記述され、具体的には、汎用OSがUNIX(登録商標)の場合、シェルスクリプトである。
【0040】
インタプリタ134は、カスタマイズプログラムをステップごとに解析し逐次実行するものであり、本実施の形態では、シェルスクリプトを実行するシェル(bsh,cshなど)である。このシェル134は、汎用OS121としてのUNIX (登録商標)にOSのカーネル135とは別個に存在するものである。
【0041】
プログラム起動部131は、HDD103の診断結果が正常である場合に、HDD103にインストールされている外部アプリ117を起動するものである。また、プログラム起動部131は、ICカードなどの記憶媒体に保存された外部アプリ117を起動する。
【0042】
複合機初期化部129は、汎用OS121の上で最初に起動されるプロセスであり、コントロールサービスやアプリケーション130(外部アプリ117を除く)の起動およびプログラム起動部131の起動を行うものである。
【0043】
NCS128は、ネットワークを制御するものであり、httpd106から通知されたリクエストメッセージ受信の旨をプログラミングサービス132に通知する。
【0044】
httpd106は、OSに含まれるプロセス(デーモン)であり、ポート80番を常時監視してリクエストメッセージの受信を行うとともに、レスポンスメッセージの送信を行うものである。なお、リクエストメッセージおよびレスポンスメッセージの構造は、通常のhttpプロトコルにおける各メッセージの構造と同様であり、各メッセージには、html形式で記述されたメッセージボディが含まれている。また、httpd106は、インターネット220経由で受信したリクエストメッセージ受信の旨をNCS128に通知するとともに、リクエストメッセージを共有メモリ105 に格納する。
【0045】
この共有メモリ105は、httpd106とプログラミングサービス132とのプロセス間通信に利用されるものであり、共有メモリ105を介してリクエストメッセージ、レスポンスメッセージなどの受け渡しを行う。
【0046】
HDD103には、起動設定ファイル211が格納され、またHDD103のカスタマイズディレクトリ212にカスタマイズプログラムが格納される。
【0047】
PC200は、複合機100のプログラミングサービス132をサーバとしたクライアント端末であり、PC200で実行されるWEBブラウザにプログラミングサービス132からhttpプロトコルで送信されたプログラミング画面201やその他画面を表示し、操作入力を行えるように構成されている。
【0048】
次に、本実施の形態にかかる複合機100の全体の機能的構成について説明する。図2は、実施の形態1の複合機100の構成を示すブロック図である。図2に示すように、複合機100は、白黒ラインプリンタ(B&W LP)101と、カラーラインプリンタ(Color LP)102と、ハードディスク装置(HDD)103と、スキャナ、ファクシミリ、メモリ、ネットワークインタフェースなどのハードウェアリソース104を有するとともに、プラットホーム120と、アプリケーション130と、複合機初期化部129と、プログラム起動部131と、プログラミングサービス132とから構成されるソフトウェア群110とを備えている。
【0049】
プラットホーム120は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一又は複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ(SRM)123と、汎用OS121とを有する。
【0050】
コントロールサービスは、複数のサービスモジュールから形成され、SCS(システムコントロールサービス)122と、ECS(エンジンコントロールサービス)124と、MCS(メモリコントロールサービス)125と、OCS(オペレーションパネルコントロールサービス)126と、FCS(ファックスコントロールサービス)127と、NCS(ネットワークコントロールサービス)128とから構成される。また、プログラミングサービス132も、コントロールサービス層に含まれている。なお、このプラットホーム120は、あらかじめ定義された関数により前記アプリケーション130から処理要求を受信可能とするアプリケーションプログラムインタフェース(API)を有する。
【0051】
汎用OS121は、UNIX(登録商標)などの汎用オペレーティングシステムであり、プラットホーム120並びにアプリケーション130の各ソフトウェアをそれぞれプロセスとして並列実行する。
【0052】
SRM123のプロセスは、SCS122とともにシステムの制御およびリソースの管理を行うものである。SRM123のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、HDDファイル、ホストI/O(セントロI/F、ネットワークI/F 、IEEE1394 I /F、RS232C I/Fなど)のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
【0053】
具体的には、このSRM123は、要求されたハードウェア資源が利用可能であるか(他の要求により利用されていないかどうか)を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、SRM123は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容(例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施している。
【0054】
SCS122のプロセスは、アプリ管理、操作部制御、システム画面表示、LED表示、リソース管理、割り込みアプリ制御などを行う。
【0055】
ECS124のプロセスは、白黒ラインプリンタ(B&W LP)101、カラーラインプリンタ(Color LP)102、スキャナ、ファクシミリなどからなるハードウェアリソース103のエンジンの制御を行う。
【0056】
MCS125のプロセスは、画像メモリの取得および解放、ハードディスク装置(HDD)の利用、画像データの圧縮および伸張などを行う。
【0057】
FCS127のプロセスは、システムコントローラの各アプリ層からPSTN/ISDN 網を利用したファクシミリ送受信、BKM (バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのAPIを提供する。
【0058】
NCS128のプロセスは、ネットワークI/O を必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。具体的には、ftpd、lpd、snmpd、telnetd、smtpdなどのサーバデーモンや、同プロトコルのクライアント機能などを有している。
【0059】
OCS126のプロセスは、オペレータ(ユーザ)と本体制御間の情報伝達手段となるオペレーションパネル(操作パネル)210の制御を行う。OCS126は、オペレーションパネルからキー押下(又はタッチ操作)をキーイベントとして取得し、取得したキーに対応したキーイベント関数をSCS122に送信するOCSプロセスの部分と、アプリケーション130又はコントロールサービスからの要求によりオペレーションパネルに各種画面を描画出力する描画関数やその他オペレーションパネルに対する制御を行う関数などがあらかじめ登録されたOCSライブラリの部分とから構成される。このOCSライブラリは、アプリケーション130およびコントロールサービスの各モジュールにリンクされて実装されている。なお、OCS126のすべてをプロセスとして動作させるように構成しても良く、あるいはOCS126のすべてをOCSライブラリとして構成しても良い。
【0060】
アプリケーション130は、ページ記述言語(PDL)、PCLおよびポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ111と、コピー用アプリケーションであるコピーアプリ112と、ファクシミリ用アプリケーションであるファックスアプリ113と、スキャナ用アプリケーションであるスキャナアプリ114と、ネットワークファイル用アプリケーションであるネットファイルアプリ115と、工程検査用アプリケーションである工程検査アプリ116 とを有している。
【0061】
アプリケーション130の各プロセス、コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信およびメッセージの送受信によってプロセス間通信を行いながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを実現している。
【0062】
このように、実施の形態1にかかる複合機100には、複数のアプリケーション130および複数のコントロールサービスが存在し、いずれもプロセスとして動作している。そして、これらの各プロセス内部には、一又は複数のスレッドが生成されて、スレッド単位の並列実行が行われる。そして、コントロールサービスがアプリケーション130に対し共通サービスを提供しており、このため、これらの多数のプロセスが並列動作、およびスレッドの並列動作を行って互いにプロセス間通信を行って協調動作をしながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを提供するようになっている。
【0063】
また、複合機100には、複合機100の顧客、サードベンダなどの第三者がコントロールサービス層の上のアプリケーション層に外部アプリを開発して搭載することが可能となっている。
【0064】
なお、実施の形態1にかかる複合機100では、複数のアプリケーション130のプロセスと複数のコントロールサービスのプロセスとが動作しているが、アプリケーション130とコントロールサービスのプロセスがそれぞれ単一の構成とすることも可能である。また、各アプリケーション130は、アプリケーションごとに追加又は削除することができる。
【0065】
また、複合機100はインストーラを含む。インストーラは、第三者が開発した外部アプリ117を、HDD103にインストールするものである。本実施の形態にかかる複合機100では、フラッシュカードなどのICカードの記憶媒体に外部アプリ117を格納し、インストーラによって外部アプリ117をHDD103にインストールし、プログラム起動部131によって、HDD103から外部アプリ117を起動してアプリケーション層で動作させるようになっている。一方、プリンタアプリ111、コピーアプリ112、ファックスアプリ113、スキャナアプリ114、ネットファイルアプリ115、工程検査アプリ116などの複合機100の出荷時に提供されるアプリケーション130、各コントロールサービス、HDD診断部132およびプログラム起動部131は、フラッシュメモリに出荷時に組み込まれており、複合機100の起動時(電源投入時)に複合機初期化部129によって起動されるようになっている。
【0066】
図3に複合機100のハードウェア構成例を示す。
【0067】
複合機100は、コントローラ160と、オペレーションパネル175と、ファックスコントロールユニット(FCU)176と、プリンタ等の画像形成処理に特有のハードウェア資源であるエンジン部177とを含む。コントローラ160は、CPU161と、システムメモリ162と、ノースブリッジ(NB)163と、サウスブリッジ(SB)164と、ASIC166と、ローカルメモリ167と、HDD168と、ネットワークインターフェースカード(NIC)169と、SDカード用スロット170と、USBデバイス171と、IEEE1394デバイス172と、セントロニクス173とを含む。なお、メモリ162、167はRAM、ROM等を含む。FCU176およびエンジン部177は、コントローラ160のASIC166にPCIバス178で接続されている。
【0068】
CPU161が、複合機100にインストールされるアプリケーション、コントロールサービス等のプログラムを、メモリから読み出して実行する。
【0069】
次に、以上のように構成された本実施の形態にかかる複合機100によるプログラム作成方法について説明する。まず、利用者は、PC200でWEBブラウザを起動し、複合機100上にあるプログラミング画面のWEBページのURL(例えば、http://www.xxx.yyy/zzz/debug.htm)を指定して複合機100のプログラミングサービス132にアクセスする。WEBブラウザからのアクセスを受けたプログラミングサービス132は、プログラミング画面201(debug.htm )をPC200のWEBブラウザに表示させる。
【0070】
図7は、プログラミング画面201の内容の一例を示す説明図である。図7に示すように、プログラミング画面201には、プログラム入力フィールドと、参照ボタンと、アップロードボタンと、保存ボタンと、消去ボタンと、テスト実行ボタンと、実行設定ボタンが表示される。
【0071】
ここで、プログラミング画面201は、html形式(Hyper TextMarkup Language)で記述されたファイル(debug.htm)がブラウザによって表示されたものである。また、プログラミングサービス132は、プログラミング画面(debug.htm)からの操作入力や要求に応じたカスタマイズプログラムの入力に関する処理等を、CGI(Common Gateway Interface)のスクリプトを実行することによって行い、その処理結果をプログラミング画面(debug.htm)に反映して、PC200のWEBブラウザに返す。
【0072】
具体的には、プログラミングサービス132は、カスタマイズプログラムの入力処理等の要求(ボタンのクリック操作等)があった場合には、debug.cgiのスクリプトを実行する。なお、本実施の形態では、CGIスクリプトを実行することにより、WEBアプリ1117による各処理を実行しているが、CGIスクリプトから呼び出される別のプログラムで実行するように構成しても良い。なお、プログラミング画面を、XML形式(eXtensible Markup Language )で記述するように構成することも可能である。
【0073】
参照ボタンは、ブラウザが動作しているPC200の記憶領域に格納されたカスタマイズプログラムを参照するためのボタンであり、この参照ボタンを押下すると、PC200の記憶領域内のディレクトリが表示され、所望のディレクトリに存在するカスタマイズプログラムを指定すると、ファイル名フィールドに指定されたカスタマイズプログラムのファイル名が表示される。なお、参照ボタンを押下したときに、複合機100のHDD103などの記憶媒体のディレクトリを参照するように構成しても良い。
【0074】
アップロードボタンは、参照ボタンで指定したカスタマイズプログラムあるいは入力フィールドに入力したカスタマイズプログラムを、複合機100に転送(アップロード)するためにクリック操作するものである。
【0075】
プログラム入力フィールドは、カスタマイズプログラムを入力する領域である。このプログラム入力フィールドには、PC200のキーボードなどの入力装置からカスタマイズプログラムを直接入力する他、上述のように参照ボタンをクリック操作することによってPC200の所望のディレクトリに存在する既存のプログラムファイルを指定することによってカスタマイズプログラムを入力する。debug.htmにおいて、このプログラム入力フィールドに相当するすべての行の先頭には、「program _list:」の文字列が記述されている。
【0076】
保存ボタンは、入力したカスタマイズプログラムを複合機100にアップロードした後に、カスタマイズディレクトリに格納する場合にクリック操作するものである。消去ボタンは、入力フィールドに入力されたカスタマイズプログラムを消去する際にクリック操作するものである。
【0077】
実行設定ボタンは、カスタマイズディレクトリに保存されたカスタマイズプログラムを複合機100で実行できるように、カスタマイズプログラムとカスタマイズプログラムを実行させるボタンを対応づける際にクリック操作するものである。この実行設定ボタンが押下されると、プログラミングサービス132は、カスタマイズプログラム中で指定されたボタン(キー)を、カスタマイズディレクトリに存在する画面ファイル中のボタン(キー)からキーコードに基づいて検索し、カスタマイズプログラムとボタン(キー)との対応付けを行い、カスタマイズプログラムの名称とボタン(キー)のキーコードのキー対応付けテーブルを生成してHDD103又はフラッシュメモリなどに当該テーブルを格納する。
【0078】
テスト実行ボタンは、入力されたカスタマイズプログラムを試験的に実行する際にクリック操作するものである。
【0079】
図8は、入力するカスタマイズプログラムの内容の一例を示す説明図である。図8に示すように、本実施の形態では、カスタマイズプログラムはUNIX(登録商標)のシェルスクリプトである。入力されたシェルスクリプトは、汎用OS121(UNIX(登録商標))のコマンド・インタプリタであるシェル134によってステップごとに逐次実行される。このため、入力したカスタマイズプログラムのコンパイルおよびリンクは不要である。
【0080】
また、シェルスクリプトには、開発ライブラリで提供される複合機専用コマンドを指定できるようになっている。図8のスクリプトは、原稿をスキャナで読み込み(scanimage)、読み込み時にTIF形式に圧縮された画像データを伸長し(decomp)、伸長した画像データに対し文字認識処理を行う(ocr)。そして、文字認識処理による認識結果をテキストデータとしてメール送信(mail)する例を示している。このスクリプトの中で、scanimage,decomp,ocrの各コマンドが開発ライブラリで提供されるコマンドである。また、カスタマイズプログラムには、このシェルスクリプトを実行するためのボタン(キー)の指定が可能となっている。
【0081】
PC200のWEBブラウザに表示されているプログラミング画面201(debug.htm)において、参照ボタンをクリックしてPC200に格納されているカスタマイズプログラムを指定し、あるいはプログラム入力フィールドに直接カスタマイズプログラムを入力し、アップロードボタンをクリック操作した場合、WEBブラウザから複合機100のプログラミングサービス132に対しリクエストメッセージが送信される。このリクエストメッセージのメッセージボディにはdebug.htmが含められており、このdebug.htmには、アップロードボタンをクリック操作したときにdebug.cgiを呼び出す旨が記述されている。このためリクエストメッセージを受信して解析を行ったプログラミングサービス132は、debug.cgiを実行する。
【0082】
ここで、リクエストメッセージを受信した複合機100における処理について説明する。図4は、リクエストメッセージを受信した複合機100における処理の手順を示すフローチャートである。
【0083】
httpd106は、ポート80番を常時監視しており、PC200からリクエストメッセージをポート80番で受信する(ステップS301)。そして、httpd106は、受信したリクエストメッセージを読み出し、リクエストメッセージを共有メモリ105に書き込む(ステップS302)。次に、httpd106は、リクエストメッセージ受信の旨をNCS128に通知する(ステップS303 )。
【0084】
通知を受けたNCS128は、さらにリクエストメッセージ受信の旨をプログラミングサービス132に通知する(ステップS304)。プログラミングサービス132は、リクエストメッセージ受信の旨の通知を受けたことをトリガとして、共有メモリ105を参照して、リクエストメッセージを読み出す(ステップS305)。そして、リクエストメッセージの内容を解析して(ステップS306)、リクエストメッセージのメッセージボディに記述された内容に応じた処理を実行する(ステップS307)。このとき、メッセージボディのhtml記述にCGIを実行する旨が記述されていれば、対応するCGIを実行する。
【0085】
そして、プログラミングサービス132は、処理の実行結果をレスポンスメッセージとして、httpd106経由でリクエストメッセージの送信元であるPC200 に返信する(ステップS308)。
【0086】
次に、プログラミングサービス132によるdebug.cgiの処理について説明する。図5は、debug.cgiの処理の手順を示すフローチャートである。なお、プログラミングサービス132がdebug.cgiのプログラムを含んでいてもよいし、debug.cgiがプログラミングサービス132の外部に存在してもよい。以下、プログラミングサービス132がdebug.cgiのプログラムを含む場合について説明する。
【0087】
プログラミングサービス132は、受信したリクエストメッセージの中のdebug.htmを先頭から一行づつ読み込む(ステップS401)。そして、読み込んだ行が「program_list:」の文字列を含むか否かを調べることにより、その行がプログラム入力フィールドか否かを判断する(ステップS402)。
【0088】
そして、プログラム入力フィールドであると判断した場合には、プログラムファイルに書き出し(ステップS403)、読み込んだ一行をそのままPC200に送信する(ステップS404)。
【0089】
そして、読み込んだ行が最終行か否かを判断し(ステップ405)、最終行であれば処理を終了し、最終行でなければ上記の処理を次の行に対して行う。これにより、複合機100において、プログラムファイルが作成され、PC200のWEBブラウザには、複合機100にアップロードされたプログラムの内容が順次表示されることになる。
【0090】
上記の方法の他、PC200で入力したプログラムを複合機に送信するには種々の方法がある。例えば、アップロードボタンを押すことにより、PC200で入力したプログラムをPC200でプログラムファイルとし、それを複合機に送信する。複合機では、そのプログラムファイルの内容を格納し、必要に応じて格納したプログラムファイルの内容をPC200に送信する。
【0091】
このようにプログラミング画面201から入力されたカスタマイズプログラムが複合機100にアップロードされ、プログラム入力フィールドにアップロード後のカスタマイズプログラムが表示された後、保存ボタン、実行設定ボタン、テスト実行ボタンのクリック操作が可能となる。これらのいずれかのボタンをクリック操作した場合におけるプログラミングサービス132の処理について説明する。
【0092】
図6は、プログラミング画面201において、保存ボタン、実行設定ボタン、テスト実行ボタンのいずれかのクリック操作が行われた場合のプログラミングサービス132の処理の手順を示すフローチャートである。以下の処理は、プログラミングサービス132におけるCGIスクリプトとしてのJava(登録商標)Scriptが実行する。すなわち、プログラミング画面201におけるボタン操作をPC200が検出してそのイベントをプログラミングサービスに送信し、プログラミングサービス132はそのイベントに応じたJava(登録商標)Scriptを実行する。以下、Java(登録商標)Scriptがプログラミングサービス132に含まれているものとして説明する。
【0093】
まず、プログラミングサービス132は、クリック操作されたボタンの種類を判断する(ステップS501)。プログラミング画面201で保存ボタンがクリックされた場合には、プログラミングサービス132は、ファイル名称を利用者に指定させ、カスタマイズプログラムを指定された名称で複合機100のHDD103のカスタマイズディレクトリに格納する(ステップS502 )。
【0094】
図9は、カスタマイズディレクトリに格納されたカスタマイズプログラムの名称の一例を示す説明図である。図9に示すように、複合機100のHDD103のカスタマイズディレクトリは、hdd/xxx/opepaneとなっており、このカスタマイズディレクトリにカスタマイズプログラムであるshell1,shell2 ,shell3 が格納されている。
【0095】
一方、プログラミング画面201で実行設定ボタンが押下された場合には、プログラミングサービス132は、上述のようにカスタマイズプログラムとボタンとの対応付けを行う(ステップS503)。
【0096】
図10は、キー対応付けテーブルの内容の一例を示す説明図である。図10に示すように、キー対応付けテーブルには、ボタンのキーコードとカスタマイズプログラム名称が対応付けられている。
【0097】
また、プログラミング画面201でテスト実行ボタンが押下された場合には、プログラミングサービス132は、格納されたカスタマイズプログラムの実行を行う(ステップS504)。これは、例えば、プログラミングサービス132がカスタマイズプログラをシェルで実行するためのコマンドを実行することによっておこなわれる。
【0098】
このとき、テスト実行によって、オペレーションパネル210に表示される画面と同一の画面をPC200で動作しているブラウザに表示する。これは、例えば、プログラミングサービス132が、プログラムのテスト実行により発生するオペレーションパネル画面への描画命令等を取得し、その描画命令に対応して表示される画面内容と同じ内容をPC200の画面に表示するような命令をPC200に対して送信することにより実現できる。
【0099】
テスト実行によってエラーが出た場合には、PC200でプログラムの修正を行い、修正したプログラムをアップロードし、再びテスト実行をする。
【0100】
次に、このようにして生成されたカスタマイズプログラムの実行処理について説明する。図11は、複合機100の電源投入が行われてから、カスタマイズプログラムの実行が可能となるまでの一連の処理の手順を示すフローチャートである。
【0101】
カスタマイズプログラムのカスタマイズディレクトリへの保存および起動設定ファイル211への設定が完了したら、利用者は複合機100の電源を再投入する。このとき複合機100では、ROMモニタ(図示せず)によってハードウェアの診断処理を行い(ステップS1001)、その後汎用OS121を起動し(ステップS1002)、さらに複合機初期化部129を起動する(ステップS1003 )。複合機初期化部129は、まずコントロールサービスの起動を行い(ステップS1004)、続いてコピーアプリ112、プリンタアプリ111などの複合機100の出荷時に提供されている既存アプリを起動し(ステップS1005 )、さらに出荷後新たに開発された外部アプリなどのプログラムを起動するためにプログラム起動部131を起動する(ステップS1006 )。
【0102】
プログラム起動部131は、まずHDD103の起動設定ファイル211を参照し(ステップS1007)、起動すべきプログラムの名称を取得する。
【0103】
図12は、起動設定ファイル211の一例を示す説明図である。図12に示すように、起動設定ファイル211には、「プログラム名称 カスタマイズプログラム名」の形式で、プログラム起動部131によって起動されるプログラムが登録されている。図12の例では、シェルスクリプトであるシェルのプログラムが最初に登録され、その後に、外部アプリとしてxxxアプリが登録されている。
【0104】
このため、図12の例では、プログラム起動部131は、まずシェルを起動し、次いで、外部アプリであるXXXアプリを順に起動するように設定されている。このため、プログラム起動部131は、まずインタプリタ134(シェル)を起動し(ステップS1008)、次いで、外部アプリであるXXXアプリを順に起動する(ステップS1009)。
【0105】
オペレーションパネル210の操作表示部に表示されたボタン(キー)の中で、カスタマイズプログラムが割り付けられたボタン(キー)を押下(タッチ操作)すると、シェルスクリプトで記述されたカスタマイズプログラムがシェルによって実行される。これは例えば次のようにして実行される。
【0106】
すなわち、カスタマイズプログラムが割り付けられたボタン(キー)の押下情報をプログラミングサービス132が取得し、キー対応付けテーブルを参照することによりそのボタンに対応するカスタマイズプログラムファイル名を取得する。そして、そのカスタマイズプログラムをシェルで実行するための命令を実行する。なお、上記の起動設定ファイルにカスタマイズプログラムを設定することにより、カスタマイズプログラムを実行してもよい。
【0107】
このように実施の形態1にかかる複合機100では、プログラミングサービス132によって、ネットワーク上のPC200に、カスタマイズプログラムのプログラミング画面を表示し、この画面からカスタマイズプログラムを入力させ、複合機100のシェル134によって、カスタマイズプログラムを実行する。これにより、カスタマイズプログラムの開発において、プログラミング画面から追加、修正ができ、また追加修正による再コンパイル、再リンクなしに複合機100で実行でき、プログラムの作成を容易に行うことができる。
【0108】
また、実施の形態1にかかる複合機100では、プログラミングサービス132によって、インターネットに接続されたPC200に対しプログラミング画面を表示し、この画面からカスタマイズプログラムを入力させているので、カスタマイズプログラムの入力を入力が容易なPC200で行うことができ、複合機100上でカスタマイズプログラムの作成編集を行う場合に比べて、カスタマイズプログラムの作成をより効率的に行うことができる。
【0109】
なお、実施の形態1にかかる複合機100では、インターネット220に接続されたクライアント端末としてのPC200の要求により、カスタマイズプログラムの入力処理を行っているが、インターネット以外のネットワーク、例えばLANなどに接続されたクライアント端末からカスタマイズプログラムの入力を行うように構成することも可能である。また、通信プロトコルとしては、TCP/IP以外のプロトコルを利用しても良い。
【0110】
また、上記の実施の形態では、複合機からPC200に対してプログラム入力画面を送信しているが、PC200が本実施の形態におけるプログラムの入力、送信などを行うプログラムを備えていてもよい。
【0111】
(実施の形態2)
実施の形態1にかかる複合機100は、ネットワーク接続されたクライアント端末であるPC200でカスタマイズプログラムを作成して複合機100に保存するものであったが、この実施の形態2にかかる複合機は、カスタマイズプログラムの入力を複合機100のオペレーションパネルから行うものである。
【0112】
図13は、実施の形態2にかかる複合機1100における主要構成を示すブロック図である。なお、複合機1100の他の構成については、図2に示した実施の形態1の複合機100の構成と同様である。図13に示すように、本実施の形態にかかる複合機1100は、複合機初期化部129と、プログラム起動部131と、プログラミングサービス1132と、インタプリタ(シェル)134と、HDD103とを備えた構成となっている。
【0113】
プログラミングサービス1132は、オペレーションパネル210の操作表示部にプログラミング画面を表示し、表示されたプログラミング画面からカスタマイズプログラムを入力させるものである。また、プログラミングサービス1132は、入力されたカスタマイズプログラムをHDD103のカスタマイズ領域として作成されたカスタマイズディレクトリ212に保存する。さらに、プログラミングサービス1132は、複合機1100上でカスタマイズプログラムが実行されるように、起動設定ファイルに入力されたカスタマイズプログラムを登録することもできる。
【0114】
なお、複合機初期化部129、プログラム起動部131、シェル134の機能およびHDD103の起動設定ファイル211およびカスタマイズ領域としてのカスタマイズディレクトリについては、実施の形態1にかかる複合機100と同様である。
【0115】
図14は、プログラミング画面1101の一例を示す説明図である。本実施の形態にかかる複合機1100において、カスタマイズプログラムを作成するためには、例えば、システム初期設定画面からプログラミングのタグを選択してプログラミング画面を表示させる。
【0116】
このプログラミング画面1101は、実施の形態1における同画面とほぼ同様に、入力フィールドと、参照ボタンと、保存ボタンと、実行設定ボタンと、テスト実行ボタンとが表示されている。かかるプログラミング画面1101では、タッチ操作でキー入力を行うソフトウェアキーボードを操作表示部に表示させて、入力フィールドにカスタマイズプログラムを入力することできる。
【0117】
しかしながら、操作表示部の領域サイズや入力の困難さから直接カスタマイズプログラムを入力することは困難である。このため、予めHDD103などの記憶媒体の所望の領域に、PCなどで作成したカスタマイズプログラムをネットワーク経由で格納し、プログラミング画面1101上の参照ボタンを押下して、カスタマイズプログラムを選択することにより、入力フィールドにカスタマイズプログラムを表示し、ソフトウェアキーボードを表示させ、プログラムの簡単な修正などだけを入力フィールドで行うことが好ましい。
【0118】
そして、カスタマイズプログラムが完成したら、保存ボタンを押下する。これによって、実施の形態1と同様に、プログラミングサービス1132によって、カスタマイズプログラムをHDD103のカスタマイズディレクトリに保存する。また、実行設定ボタンを押下すると、実施の形態1と同様に、プログラミングサービス1132によって、カスタマイズプログラムとカスタマイズプログラムで指定されたボタン(キー)のキーコードが対応付けられてテーブルとして保存される。なお、作成したカスタマイズプログラムの実行処理については、実施の形態1の複合機100 と同様である。
【0119】
このように実施の形態2にかかる複合機1100では、プログラミングサービス1132によって、オペレーションパネル210の操作表示部にプログラミング画面1101を表示し、この画面からカスタマイズプログラムを入力させているので、ネットワークに接続されていないスタンドアローンの複合機1100においてもカスタマイズプログラムを作成することができる。
(実施の形態3)
実施の形態1および2の複合機100,1100は、カスタマイズプログラムと操作表示部のボタン(キー)との対応付けをカスタマイズプログラムの記述により行うものであったが、この実施の形態3にかかる複合機は、複合機の電源投入時にカスタマイズプログラムと操作表示部のボタン(キー)との対応付けを動的に行うものである。
【0120】
図15は、実施の形態3にかかる複合機1300の機能的構成を示すブロック図である。本実施の形態の複合機1300では、実施の形態1と同様に、ネットワーク上のPC200でカスタマイズプログラムの作成を行って、複合機1300のHD103に作成されたカスタマイズプログラムを保存して実行する。
【0121】
図15に示すように、本実施の形態の複合機1300は、オペパネ登録部133を備えている点が図2に示す実施の形態1の複合機100と異なっており、他の構成は実施の形態1の複合機100と同様である。
【0122】
オペパネ登録部133は、カスタマイズプログラムを実行させるためのボタン(キー)の割り付けを行うものである。すなわち、オペパネ登録部133によって割り付けたボタン(キー)をオペレーションパネル上で押下(タッチ操作)することによって、カスタマイズプログラムが実行される。
【0123】
PC200上からのカスタマイズプログラムの作成および保存の処理は、実施の形態1のプログラミングサービス131と同様に行われる。
【0124】
以下、カスタマイズプログラムと操作表示部に表示されるボタン(キー)の割付処理について説明する。カスタマイズプログラムのカスタマイズディレクトリへの保存が完了すると、作成したカスタマイズプログラムをオペレーションパネル210のボタン(キー)に割り付けるために、利用者は複合機100の電源を再投入する。
【0125】
図16は、複合機1300の電源投入が行われてから、カスタマイズプログラムとボタン(キー)との割り付けが完了するまでの一連の処理の手順を示すフローチャートである。
【0126】
複合機1300の電源投入からプログラム起動部131までの処理(ステップS1501〜S1506)については、実施の形態1の複合機100による処理(ステップS1001〜S1006)と同様である。
【0127】
起動されたプログラム起動部131は、まずHDD103の起動設定ファイル211を参照し(ステップS1507)、起動すべきプログラムの名称を取得する。図17は、本実施の形態で使用される起動設定ファイル211の内容の一例を示す説明図である。この例では、オペパネ登録部のプログラム、シェルおよび外部アプリであるXXX アプリを順に起動するように設定されている。
【0128】
このため、プログラム起動部131は、まずオペパネ登録部133のプログラムを起動する(ステップS1508)。なお、このオペパネ登録部133のプログラムは、予めカスタマイズディレクトリに格納されている。次いで、インタプリタ(シェル)134を起動し(ステップS1509)、最後に、登録されている外部アプリを起動する(ステップS1510)。
【0129】
起動されたオペパネ登録部133は、キー割り付け設定画面をオペレーションパネルに表示する(ステップS1511)。図18は、キー割り付け設定画面の一例を示す説明図である。図18に示すように、キー割り付け設定画面には、各カスタマイズプログラムごとに割り付け可能なボタン(キー)が表示され、かかる画面で所望のボタン(キー)を押下(タッチ操作)すると、オペパネ登録部133は、該当するカスタマイズプログラムの名称と押下されたボタン(キー)のキーコードとを対応付けて、HDD103又はフラッシュメモリなどの記憶媒体にテーブル情報として格納する(ステップS1512)。これによって、オペレーションパネルに表示されるボタン(キー)にカスタマイズプログラムが割り付けられることになる。
【0130】
このように実施の形態3にかかる複合機1300では、プログラミングサービス132によって、プログラミング画面201を表示してカスタマイズプログラムを入力させ、オペパネ登録部133によって、カスタマイズプログラムを操作表示部に表示および入力を行うボタン(キー)に割り付ける。このオペパネ登録部133を複合機1300の電源投入時に起動することにより、カスタマイズプログラムが実行される場合のボタン操作を複合機1300の起動時に動的に定めることができる。
【0131】
なお、本実施の形態では、オペパネ登録部133によってボタン(キー)への割り付け処理を行っているが、例えば、SCS122などのコントロールサービスでボタン(キー)割り付け処理を行うようにしてもよい。これにより、割り付け処理のために別途プログラムを起動する必要が無くなり、効率的な処理が行える。
【0132】
(実施の形態4)
実施の形態1〜3の複合機100,1100,1300は、シェルスクリプトとしてカスタマイズプログラムを複合機100,1300の汎用OS121で用意されたコマンドインタプリタであるシェル134によって実行するものであったが、この実施の形態4にかかる複合機は、シェル134以外のインタプリタを使用してカスタマイズプログラムを実行するものである。
【0133】
図19は、実施の形態4にかかる複合機1700を備えたネットワーク構成図であり、図20は、実施の形態4にかかる複合機1700の機能的構成を示すブロック図である。実施の形態4にかかる複合機1700は、実施の形態1と同様に、TCP/IPを利用したインターネットに接続され、当該ネットワークに接続されたクライアント端末であるPC200からカスタマイズプログラムの入力およびデバッグ作業を行うことを可能としたものである。なお、カスタマイズプログラムとしては、例えば、オペレーションパネル210の操作表示部にボタンを表示し、あるボタンを押したときにそのボタンに対応した処理を行うためのプログラムがある。
【0134】
本実施の形態の複合機1700では、カスタマイズプログラムを、Visual Basic(登録商標)言語で記述する。そして、作成されたカスタマイズプログラムを、汎用OS121の配下で動作するVisual Basicインタプリタで実行させている。
【0135】
図19に示すように、複合機1700は、複合機初期化部129と、プログラム起動部131と、プログラミングサービス132と、Visual Basicインタプリタ1734(以下、「VBインタプリタ1734」という。)と、NCS128と、httpd106と、共有メモリ105と、HDD103とを備えた構成となっている。なお、プログラミングサービス132、複合機初期化部129、プログラム起動部131、NCS128、httpd106の構成および機能、HDD103に格納される起動設定ファイル211の内容およびカスタマイズディレクトリについては、実施の形態1の複合機100と同様である。
【0136】
VBインタプリタ1734は、カスタマイズプログラムをステップごとに解析し逐次実行するものである。本実施の形態において、カスタマイズプログラムの作成および保存は、実施の形態1のプログラミングサービス132と同様に行われる。
【0137】
また、本実施の形態の複合機1700では、VBインタプリタ1734によってカスタマイズプログラムを実行させるため、複合機1700の起動時にVBインタプリタ1734も起動させておく必要がある。このため、実施の形態1と同様の起動設定ファイル211にVBインタプリタ1734のプログラム名称を予め設定しておく。
【0138】
図21は、起動設定ファイルの内容の一例を示す説明図である。図21に示すように、本実施の形態の複合機1700で使用する起動設定ファイル211には、先頭の行に「VBインタプリタプログラム」が設定されている。このため、プログラム起動部131は、起動設定ファイル211を参照した後、まずVBインタプリタ1734を起動することになり、これによってカスタマイズプログラムの実行が可能となる。
【0139】
このように実施の形態4にかかる複合機1700では、汎用OS121の配下で動作するVBインタプリタによってカスタマイズプログラムを実行するので、汎用OSで提供されるインタプリタよりも高度な処理を行えるインタプリタを利用することができる。従って、UNIX(登録商標)のシェルを用いるよりも高度なプログラムを容易に作成することが可能となる。
【0140】
なお、実施の形態4では、PC200上ではVBインタプリタはインストールされていないが、PC200にVisual Basic開発環境をインストールし、操作表示部の画面設計を含むプログラム作成をPC200上で行って、生成されたプログラムをファイル転送などを利用して、複合機1700のカスタマイズディレクトリに格納するように構成しても良い。
【0141】
また、実施の形態4の複合機1700では、インタプリタとしてVBインタプリタ1734を使用し、開発するカスタマイズプログラムをVisual Basic言語で記述していたが、この他、インタプリタ用の言語を用いても良い。例えば、複合機1700にJava(登録商標)VM(仮想マシン)を搭載し、カスタマイズプログラムをJava(登録商標)言語で記述するように構成することもできる。
【0142】
実施の形態1〜4にかかる複合機では、プログラミングサービス132をコントロールサービス層に搭載した構成としているが、アプリケーション層に搭載した構成とすることもできる。
【0143】
(実施の形態5)
実施の形態4にかかる複合機は、汎用OS121の配下で動作するインタプリタを使用してカスタマイズプログラムを実行するものであったが、この実施の形態5にかかる複合機1800は、VBインタプリタ1801とVBアプリ1802をアプリケーション層に搭載した構成としたものである。
【0144】
図22に、実施の形態5に係る複合機の機能構成のブロック図を示す。実施の形態5にかかる複合機は、実施の形態4と同様に、TCP/IPを利用したインターネットに接続され、当該ネットワークに接続されたクライアント端末であるPC200から、カスタマイズプログラムの入力およびデバッグ作業を行うことを可能としたものである。ただし、実施の形態5では、作成されたカスタマイズプログラム(以下、VBアプリと称する)を、アプリケーション層に搭載されたVisual Basicインタプリタ(以下、VBインタプリタと称する)で実行させている。なお、図中、プログラミングサービス132をアプリケーション層に搭載した構成としてもよい。
【0145】
Visual Basic開発環境をインストールしたPC200上でVBアプリの作成を行い、その作成したVBアプリを複合機に転送し、複合機でそのVBアプリを格納しておき、オペレーションパネルにおけるアプリ選択等に応じてVBアプリを起動してVBインタプリタ1801により実行するようにする。
【0146】
以下、より具体的に説明する。
【0147】
図23は、PC200上でVisual Basic開発環境を用いてVBアプリを作成している場面の例を示す図である。
【0148】
同図中の画面内にはProject2−Form2(Form)の表題がついたウィンドウと、Project2−Form2(コード)の表題がついたウィンドウが示されている。
【0149】
Project2−Form2(Form)の表題がついたウィンドウは、複合機のオペレーションパネルで表示されるメニュー画面を作成するためのものであり、表示されている状態では、3つのボタンが設定されており、一つは”SCAN”、一つは”FAX”あと一つは”START”のボタンである。これらのボタンが押された場合に、複合機のスキャニングやファックス送信などの動作が行われるように設計される。
【0150】
Project2−Form2(コード)の表題がついたウィンドウは、上記のパネルの画面中にあるボタンが押されたときの動作を記述するプログラミングを行うためのものである。
【0151】
図23に示す状態でプログラムの保存を行うと、Project2.vbpとForm2.frmという二つのファイルが生成される。Project2.vbpにはプロジェクトを管理するための情報や、プログラムを実行する際の条件となるものが、変数への値の設定として保存されている。
【0152】
Form2.frmは、VBインタプリタ1801によりインタプリトされるプログラムそのものであり、このVBアプリをPC200から複合機上のプログラミングサービス132を介してアップロードする。
【0153】
そして、プログラミング画面201でテスト実行ボタンが押下された場合には、複合機上のVBインタプリタ1801が起動され、入力されたVBアプリの実行が行われる。このとき、テスト実行によって、オペレーションパネル210に表示される画面と同一の画面をPC200で動作しているブラウザに表示する。
【0154】
図24、25に、VBインタプリタ1801により実行されるVBアプリの例を示す。
【0155】
図24に示すVBプログラムが複合機において実行されると、まず、NEXTWINボタンを含むウィンドウが表示される。そして、NEXTWINボタンが押されると、call(”change_display”, ”Form2”)により、関数change_display(”Form2”)が実行され、次の画面(Form2ウィンドウ)に切り替わる。
【0156】
図25に、そのForm2ウィンドウを表示するVBプログラムを示す。なお、Form2のVBプログラムは、図23に示した画面に対応する。
【0157】
Form2ウィンドウでは、SCANボタンが押されたときに、

Figure 2004185593
が実行される。
【0158】
最初のScanStart関数は、A4サイズの原稿をADFから読み込んで、2値画像としてTIFFフォーマットでHDD上のファイル”/work/tempfile”で保管することを意味している。この関数をVBインタプリタ1801が解釈して、複合機に動作を行わせることとなる。
次の行のgwOpItemCreate()は複合機におけるOCS126によりその機能が提供されている関数であり、現在表示されている画面に文字列を表示する機能を実行するものである。gwOpItemCreate()は、VBインタプリタ1801により、OCS126への関数コールとして実行される。
【0159】
このようにして作成されたVBアプリを複合機で実行させるには、図11に示した起動設定ファイルにVBインタプリタとVBアプリを設定し、例えば図10に示した手順と同様にして、VBインタプリタとVBアプリを起動する。
【0160】
複合機でのVBアプリ実行時、オペレーションパネルに表示操作を行うためには次のような処理を行う。まず、VBインタプリタ1801は、SCS122からの画面描画準備完了イベントを待ち、上記のイベントを受け取ったら、初期表示するウィンドウイメージを作成する(ルートウィンドウ生成)。次に、VBアプリが、ルートウィンドウ内の子ウィンドウの生成や文字列表示の関数を実行することにより初期画面を準備する。そして、画面準備完了を示す関数を実行することにより、画面の準備ができたことをSCS122に通知する。次に、オペレーションパネル上でアプリ選択ボタンが選択されると、SCS122から操作部オーナー移行要求のイベントが発行される。このイベントをVBアプリが受け取ると、操作部オーナー移行可能であることを示す関数を実行し、この時点で上記の初期画面が表示される。この後、VBアプリの実質的な処理がVBインタプリタ1801により実行される。
【0161】
上記のように、本実施の形態によれば、VBインタプリタを用いることにより効率良くアプリを開発することが可能となる。
(実施の形態6)
実施の形態5にかかる複合機は、VBインタプリタをアプリケーション層に搭載した構成としたものであったが、実施の形態6にかかる複合機は、Java(登録商標)実行環境をアプリケーション層に搭載した構成としたものである。
【0162】
図26に、実施の形態6に係る複合機1900の機能構成のブロック図を示す。同図に示すように、実施の形態6に係る複合機1900は、アプリケーション層にJava(登録商標)実行環境1901とJava(登録商標)アプリ1902を搭載した構成を有している。Java(登録商標)アプリケーションをPC(パーソナルコンピュータ)などで開発し、それを複合機にダウンロードしてJava(登録商標)実行環境1901を用いて実行する。
【0163】
図27は、PCにおけるJava(登録商標)開発環境と複合機1900におけるJava(登録商標)実行環境の構成を示す図である。
【0164】
同図に示すように、複合機1900におけるJava(登録商標)実行環境は、クラスライブラリ1911、仮想マシン1912、アプリケーション管理部1914を有している。
【0165】
クラスライブラリ1911は、Java(登録商標)アプリが容易に複合機を操作するためのサービスを提供するために用いられるクラスライブラリである。本実施の形態におけるクラスライブラリは、例えば、操作パネルクラス、イベントクラス、複合機制御クラス、ネットワークトランザクションクラス、基本的なJava(登録商標)クラスライブラリ等から構成される。なお、Java(登録商標)アプリ自身もクラスの集合であり、そのクラスがクラスライブラリのクラスを呼び出すことにより、アプリの処理が実行される。Java(登録商標)アプリに、それが使用するクラスライブラリのクラスの機能を全て含めることにより、クラスライブラリ1911を搭載しない構成もあり得る。
【0166】
Java(登録商標)のソースコードプログラムはコンパイルして中間コード形式のバイトコードされ、複合機にロードされる。仮想マシン1912はそのバイトコードを解釈・実行する。
【0167】
アプリケーション管理部1914は、Java(登録商標)アプリを管理する機能を有しており、例えば、Java(登録商標)アプリのリスト表示、起動や強制終了などのJava(登録商標)アプリ実行管理、Java(登録商標)アプリのロードやバージョンアップ、インストール済みのJava(登録商標)アプリの削除、アプリケーション登録のためのパスワード設定等を行う機能を有している。
【0168】
より詳細には、図28に示すように、Java(登録商標)の実行環境は更にネイティブプログラムインタフェース1913を有している。ネイティブプログラムインタフェース1913は、仮想マシン1912で実行されるJava(登録商標)コードが、C言語などの他のプログラミング言語で書かれたアプリケーションやライブラリと相互運用するための機能を有している。このネイティブプログラムインタフェース1913の機構を用いて、アプリはコントロールサービスのAPIにアクセスできる。
【0169】
図27に示すJava(登録商標)開発環境は、Java(登録商標)の実行環境と同様のクラスライブラリ1921、仮想マシン1922、アプリケーション管理部1924を有している。また、更に、バイトコードを生成するためのJava(登録商標)コンパイラ1925と、アプリによる複合機の操作をエミュレートするエミュレータ1923を有している。このJava(登録商標)開発環境で開発されたJava(登録商標)アプリは、ICカード等の記録媒体を介して複合機のJava(登録商標)実行環境にロードできる。また、ネットワークを介してロードすることもできる。
【0170】
例えば、図29に示すように、WebサーバにJava(登録商標)開発環境で開発したJava(登録商標)アプリを格納しておき、Java(登録商標)実行環境からWebサーバにアクセスしてJava(登録商標)アプリをロードするように構成できる。また、Webサーバの代わりにFTPサーバを使用することもできる。
【0171】
(Java(登録商標)アプリケーションの開発)
次に、Java(登録商標)開発環境でのJava(登録商標)アプリの開発について詳細に説明する。
【0172】
図30は、Java(登録商標)アプリ開発の流れを示す図である。このように、まず、Java(登録商標)のソースコードをJava(登録商標)ファイルとして作成し、これをJava(登録商標)コンパイラでコンパイルし、クラスファイルとする。そして、複数のクラスをまとめてJarファイルとする。なお、Jarファイルにはmainルーチンを持つクラスを示すファイルを含めておくことが好ましい。
【0173】
このようにして作成したJava(登録商標)アプリを、これまでに説明した実施の形態と同様にして複合機上でテスト実行することにより、デバッグを行うことが可能であるが、本実施の形態では、図27に示すエミュレータ1923を用いることにより、ターゲットである複合機を用いずにJava(登録商標)アプリのデバッグをすることが可能である。これは、Java(登録商標)では、仮想マシンを使用する構成となっているため、実行環境をエミュレートすることが比較的容易であることによる。エミュレータを用いた開発が完了したら、Java(登録商標)アプリ(バイトコード)をネットワーク又はICカードを介して複合機にロードすることにより、複合機を用いた評価を行うことが可能である。
【0174】
エミュレータは、Java(登録商標)アプリ側からの命令を受信し、それに応じた動作を行うように記述したプログラムとして構成することができる。例えば、複合機のオペレーションパネルの表示部への表示命令に対しては、複合機上に表示する画面と同様の画面をPCのディスプレイ上に表示する。ただし、開発環境であるPCには複合機におけるエンジン(スキャナ、プリンタなど)がないので、例えば、Java(登録商標)アプリからのプリント命令に対しては、PCの画面上にプリントを行う画像を表示したり、PC自身に接続されているデフォルトのプリンタに印刷を行う。また、ユーザがコピー操作をPCのエミュレータ画面上でした場合には、例えば、ユーザにコピー対象となるファイルをローカルファイルシステムから選ぶように通知し、コピーのあて先を尋ねるダイアログボックスを表示し、選択されたファイルをその指定された宛先にコピーする。
【0175】
なお、エミュレータは、図27に示すように仮想マシンとクラスライブラリとは別のプラグラムとして実装することもできるし、図31に示すように、クラスライブラリの中のクラスとして実装することもできる。
【0176】
図32に、エミュレータによりPCに表示されるオペレーションパネル画面を示す。この画面に表示されるボタンなどの要素は、実際の複合機のものと同等である。また、エミュレータは、格納したJava(登録商標)アプリを選択して実行するローダーの機能も有している。ローダーとして動作する場合には、例えば、図33に示す画面を表示する。そして、ユーザはJava(登録商標)アプリを選択し、実行ボタンを押すことによりJava(登録商標)アプリが実行される。なお、ここで表示されるJava(登録商標)アプリは、mainルーチンを持つクラス名、もしくはJarファイル名である。
【0177】
エミュレータは、エミュレータ上で動作するアプリケーションの状態状態情報を自動的にログファイルに収集する機能も有しており、どのようなメッセージをログとして残すかの設定もできる。例えば、アプリを異常終了させるような深刻なエラーのみをログとして収集するように設定したり、アプリケーションのデバッグに有益な詳細情報をログとして収集するように設定することができる。
【0178】
エミュレータを用いて開発環境側でプログラムのデバッグを行うことは、他の実施の形態においても適用可能である。すなわち、例えば実施の形態1において、PC200にインタプリタと、本実施の形態と同様のエミュレータを搭載する。プログラムのデバッグが進んだところで、評価のために複合機にアクセスしてプログラムを送信する。
【0179】
(Java(登録商標)アプリケーションの例)
次に、Java(登録商標)アプリケーションの例について説明する。ここでは、操作パネルクラスを使用したサンプルプログラムを使用したJava(登録商標)アプリの例について説明する。図34に、操作パネルクラスの階層構成を示す。
【0180】
図34中、***Windowのクラスはウィンドウ作成のためのクラスであり、****Itemのクラスは、ボタンなどのウィンドウ中におけるエレメントを作成するためのクラスである。例えば、以下に示すコードを含むプログラムにより、図35に示すようなメインウィンドウとその中のエレメントが作成される。
【0181】
mainwindow = new PanelWindow (panel.root(), 640, 240); (a)
MessageItem msg = new MessageItem (20, 20, 600, 40); (b)
ButtonItem Button = new ButtonItem (10, 60, 80, 30); (c)
上記の(a)は、幅640ドット、高さ240ドットのメインウィンドウを作成するためのコードである。(b)は、メインウィンドウの位置(20、20)に幅600、高さ40のメッセージアイテムを作成するためのコードである。(c)は、(10、60)の位置に、サイズ80×30のボタンを作成するためのコードである。
【0182】
図36に示すプログラムは、複合機のオペレーションパネルにユーザーインタフェースを実装するプログラムである。図37に示すように、このプログラムは起動直後に”Hello World”及び”Your Input Was…”のメッセージと”Get Input…”のボタンを表示する。ユーザーが”Get Input…”のボタンに触れると、パネル上にソフトキーボードを表示し、ソフトキーボードには、”Add your Input”のタイトルが表示され、ユーザーに任意のコード入力を促す。ユーザーが、ソフトキーボードから任意の文字列、例えば、“ABCD!”を入力した場合、パネル上の”Your Input Was…”のメッセージの下にユーザーが入力した文字列を表示、すなわち、“ABCD!”を表示する。
【0183】
以下、図36に示すサンプルプログラムの内容について、プログラム中に記述した注釈の番号に沿って説明する。
【0184】
▲1▼は、操作パネルクラスライブラリを使用するための命令である。▲2▼は、GWAppを継承することを示し、これにより複合機のアプリケーション雛型(抽象)を使用することが可能となる。また、複雑な初期設定や終了処理をユーザーが記述せずに済み、メッセージ受信などの処理もユーザーに対して隠蔽することができる。また、▲3▼ により“Hello World”のメッセージを表示するオブジェクトを生成し、▲4▼ により“Get Input...”のボタンオブジェクトを生成する。そして、▲5▼ により“Your Input Was...” のメッセージを表示するオブジェクトを生成し、▲6▼ によりソフトキーボードから入力した文字を表示するメッセージオブジェクトを生成する。
【0185】
(Java(登録商標)実行環境におけるJava(登録商標)アプリの実行について)
図27に示す構成において、アプリケーション管理部1914の機能を用いることにより、以下のような手順でダウンロードから起動までの処理を行うことが可能である。
【0186】
アプリケーション管理部1914は、他のアプリケーションと同様にして複合機の起動時に起動され、アプリケーション起動キー等を押すことにより、オペレーションパネルにユーザーインタフェースを表示する。このとき、Java(登録商標)アプリがロードされていない場合は、アプリケーションロード画面を表示する。ユーザーは、このアプリケーションロード画面から所定のWebサイト又は、ICカードにアクセスし、Java(登録商標)アプリをロードする。
【0187】
ロードの処理においては、Java(登録商標)アプリをロードする前に、当該Webサーバ等に対してJava(登録商標)アプリに関する情報の問い合わせを行い、インストール可能であるJava(登録商標)アプリであるか否かを確認する。確認項目は、例えば、プログラムサイズ、バージョン確認、プログラム最終更新情報、使用するメモリワークサイズ、使用するストレージサイズ、あらかじめ使用するネットワークアドレスの確認、利用可能期間(利用回数)、アプリケーションプログラム名等である。
【0188】
上記の事項を確認し、インストール可能であると判断した場合は、アプリケーション管理部1914がJava(登録商標)アプリケーションファイルを複合機にダウンロードする。
【0189】
そして、Java(登録商標)アプリケーションプログラムのダウンロードが終了すると、アプリケーション管理部1914は、アプリケーション名を取得し、アプリケーションリストに追加し、同時にJava(登録商標)アプリケーションプログラムを複合機のハードディスクに格納する。
【0190】
以上の処理が完了することにより、ダウンロードしたJava(登録商標)アプリを利用できる状態になり、ユーザーは、アプリケーション管理部1914が提供するJava(登録商標)アプリケーション起動画面から起動するJava(登録商標)アプリを選択することにより、仮想マシンを起動し、Java(登録商標)アプリを実行することができる。
【0191】
次のようにしてJava(登録商標)アプリを実行することも可能である。次に説明する方法は、図29に示した構成において、Java(登録商標)アプリをWebサーバからロードして実行する例である。以下の処理は、アプリケーション管理部1914に含まれるローダー(プログラム)により実行される。なお、ローダー自身はJava(登録商標)アプリとして実装してもよいし、例えばC言語で実装してもよい。
【0192】
図38に、図29に示した構成におけるJava(登録商標)アプリのアップロードからダウンロードまでの概念図を示す。このように、Java(登録商標)開発環境において、開発、テストされたJava(登録商標)アプリをWebサーバにアップロードする(ステップ1)。複合機のローダーは、Webサーバにアクセスし(ステップ2)、ユーザ所望のJava(登録商標)アプリをダウンロードし(ステップ3)、実行する。
【0193】
次に、図39のフローチャートを参照してローダーの処理手順について説明する。
【0194】
ユーザが複合機におけるアプリ切り替えのための所定のボタンを押すことにより、ローダーはJava(登録商標)アプリが既にロードされているか否かをチェックし(ステップ11)、ロードされていればJava(登録商標)アプリを実行する(ステップ12)。そして、Java(登録商標)アプリユーザーインタフェースが表示される。ロードされていなければローダーの画面が表示される(ステップ13)。なお、Java(登録商標)アプリの実行が終了した場合にはローダーの画面が表示される。また、Java(登録商標)アプリのユーザーインタフェースが表示されているときに、所定のコードを入力して所定のボタンを押すことにより、ローダーの画面を表示することができる。
【0195】
図40に、複合機に表示されるローダーの画面を示す。ローダーには、現在ロードされているJava(登録商標)アプリがあればそのJava(登録商標)アプリと、ローダーがJava(登録商標)アプリの更新をWebサーバに対してチェックする頻度が表示される。
【0196】
ローダーの画面において、アプリのロードのボタンに触れると、図41に示すアプリロードウィンドウが表示される(ステップ14)。ここでJava(登録商標)アプリのURLを入力する。URLを入力するには、URLボタンに触れ、ソフトキーボードを表示させ、ソフトキーボードからタイプすることによりURLを入力する。また、URLボタンに触れることにより、図42に示すようなJava(登録商標)アプリのURLのリストを表示し、そのリストの中から所望のJava(登録商標)アプリを選択するようにしてもよい。また、必要に応じて、図41に示すクラス名の欄に、選択したJava(登録商標)アプリ(Jarファイル)の中のmainルーチンを持つクラス名を入力する。
【0197】
その後、図41に示す画面のOKボタンに触れることにより、Java(登録商標)アプリがWebサーバからダウンロードされ(ステップ15)、複合機で実行される。
【0198】
ローダーは自動的に、指定された間隔でWebサーバをチェックし、新たなバージョンのJava(登録商標)アプリがWebサーバに格納されているか否かを確認する。これは、現在動作しているJava(登録商標)アプリの日付とタイムスタンプを、Webサーバ上のものと比較することにより行う。新たなバージョンのJava(登録商標)アプリが発見された場合には、現在作動しているJava(登録商標)アプリは削除され、新しいバージョンのJava(登録商標)アプリがダウンロードされる。
【0199】
上記の更新間隔を変更するには、図40に示す画面上の更新間隔ボタンに触れることにより、図43に示す画面が表示される(ステップ16)。この画面の中で矢印キーを用いて時間か分かを選択し、オペレーションパネルの数字キーを用いて新たな時間間隔を入力する。
【0200】
複合機からJava(登録商標)アプリを削除する場合には図40に示す画面のアンロードのボタンに触れることにより、図44に示す画面を表示する(ステップ17)。ここで“OK”ボタンに触れることによりJava(登録商標)アプリが削除される。
【0201】
図40の画面におけるExitボタンに触れることによりローダーが終了する。
【0202】
さて、本実施の形態では、Java(登録商標)アプリを連結することにより、カスタマイズプログラムを作成することが可能である。この処理の流れについて図45を参照して説明する。なお、カスタマイズプログラムを作成するプログラム自体もJava(登録商標)アプリであり、以下これをカスタマイズアプリと呼ぶ。なお、カスタマイズアプリは予め画像形成装置内に備えられていてもよい。
【0203】
まず、操作表示部の画面を図40のローダ画面に切り替え、カスタマイズアプリをロードし、実行する。
【0204】
カスタマイズアプリは図45の画面1を表示する。画面1には、紙(paper)のオブジェクトだけが表示される。なお、紙のオブジェクト以外のオブジェクトを入れることもできる。オブジェクトは“入れる”ボタン、“取り出す”ボタンにより出し入れをすることができる。また、画面1において、紙のオブジェクトには読み書き許可属性などの属性を“読書許可”ボタンにより設定することができる。
【0205】
画面1においてpaperに触れると、画面2に示すように、paperオブジェクトに接続されるオブジェクトのリストが表示される。ここでscanを選択すると、画面3に遷移し、さらにscanに触れることにより、scanオブジェクトに接続されるオブジェクトのリストが画面4のように表示される。画面4においてmailを選択すると画面5に遷移する。
【0206】
その後、“設定”ボタンに触れることにより、スキャンして、その画像ファイルをメールにて送信するという処理を行うカスタマイズプログラムが生成される。また、画面6に示すようにキーがアサインされる。複合機でこのキーを操作することにより、上記のカスタマイズプログラムが実行される。このカスタマイズプログラムは、連結されたオブジェクトのクラスを順次実行するように記述されたプログラムである。
【0207】
なお、本実施の形態のようにWebサーバにアプリを格納しておき、Webサーバから複合機に所望のアプリをダウンロードすることや、アプリを連結してカスタマイズすることは、他の実施の形態にも適用可能である。例えば、VBインタープリタを用いた前述した構成において、本実施の形態と同様の機能のローダーを備えることにより、本実施の形態と同様にサーバからアプリをダウンロードできる。
【0208】
なお、これまでに説明した各サービスプログラム、アプリケーションプログラムは、ICカード等の記録媒体に格納し、そこから画像形成装置に格納することができる。また、ネットワークを介して外部のサーバから画像形成装置に格納することもできる。
【0209】
上記のように、本実施の形態によれば、Java(登録商標)環境を用いることにより効率良くアプリを開発することが可能となる。
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内で種々変更・応用が可能である。
【発明の効果】
上記のように本発明によれば、アプリケーションを容易に実行可能な画像形成装置およびアプリケーション実行方法を得ることができる。
【図面の簡単な説明】
【図1】実施の形態1にかかる複合機の主要構成およびネットワーク構成を示すブロック図である。
【図2】実施の形態1の複合機の機能的構成を示すブロック図である。
【図3】実施の形態1にかかる複合機のハードウェア構成を示すブロック図である。
【図4】リクエストメッセージを受信した複合機における処理の手順を示すフローチャートである。
【図5】debug.cgiの処理の手順を示すフローチャートである。
【図6】プログラミング画面において、保存ボタン、実行設定ボタン、テスト実行ボタンのいずれかのクリック操作が行われた場合のWEBアプリの処理の手順を示すフローチャートである。
【図7】プログラミング画面の内容の一例を示す説明図である。
【図8】プログラム入力フィールドに入力されるカスタマイズプログラムの一例を示す説明図である。
【図9】カスタマイズディレクトリに格納されたカスタマイズプログラムの名称の一例を示す説明図である。
【図10】キー対応付けテーブルの内容の一例を示す説明図である。
【図11】複合機の電源投入が行われてから、カスタマイズプログラムの実行が可能となるまでの一連の処理の手順を示すフローチャートである。
【図12】起動設定ファイルの一例を示す説明図である。
【図13】実施の形態2にかかる複合機における主要構成を示すブロック図である。
【図14】プログラミング画面の一例を示す説明図である。
【図15】実施の形態3にかかる複合機の機能的構成を示すブロック図である。
【図16】複合機の電源投入が行われてから、カスタマイズプログラムとボタン(キー)との割り付けが完了するまでの一連の処理の手順を示すフローチャートである。
【図17】起動設定ファイルの内容の一例を示す説明図である。
【図18】キー割り付け設定画面の一例を示す説明図である。
【図19】実施の形態4にかかる複合機の主要構成およびネットワーク構成を示すブロック図である。
【図20】実施の形態4にかかる複合機の機能的構成を示すブロック図である。
【図21】起動設定ファイルの内容の一例を示す説明図である。
【図22】実施の形態5にかかる複合機の機能的構成を示すブロック図である。
【図23】PC200上でVisual Basic開発環境を用いてVBアプリを作成している場面を示す図である。
【図24】VBインタプリタにより実行されるVBアプリの例を示す図である。
【図25】VBインタプリタにより実行されるVBアプリの例を示す図である。
【図26】実施の形態6にかかる複合機の機能的構成を示すブロック図である。
【図27】Java(登録商標)開発環境とJava(登録商標)実行環境を示す図である。
【図28】Java(登録商標)実行環境の構成の例を示す図である。
【図29】WebサーバからJava(登録商標)アプリをダウンロードする構成を示す図である。
【図30】Java(登録商標)アプリ作成の手順を示す図である。
【図31】エミュレータの他の実装例を示す図である。
【図32】エミュレータによりPCに表示されるオペレーションパネルの画面を示す図である。
【図33】エミュレータがローダーとして動作する場合に表示される画面を示す図である。
【図34】操作パネルクラスの階層構成を示す図である。
【図35】ウィンドウの作成を説明するための図である。
【図36】サンプルプログラムを示す図である。
【図37】サンプルプログラムの実行結果を示す図である。
【図38】図29に示した構成におけるJava(登録商標)アプリのアップロードからダウンロードまでの概念図である。
【図39】ローダーの処理手順を示すフローチャートである。
【図40】複合機に表示されるローダーの画面を示す図である。
【図41】アプリをロードするための画面である。
【図42】Java(登録商標)アプリのURLのリストである。
【図43】更新間隔を変更するための画面である。
【図44】アプリをアンロードするための画面である。
【図45】Java(登録商標)アプリを連結することにより、カスタマイズプログラムを作成する手順を説明するための図である。
【符号の説明】
100,1100,1300, 1700,1800,1900 複合機
101 白黒ラインプリンタ
102 カラーラインプリンタ
103 ハードディスク装置(HDD)
104 ハードウェアリソース
105 共有メモリ
106 httpd
110 ソフトウェア群
111 プリンタアプリ
112 コピーアプリ
113 ファックスアプリ
114 スキャナアプリ
115 ネットファイルアプリ
116 工程検査アプリ
117 外部アプリ
120 プラットホーム
121 汎用OS
122 SCS
123 SRM
124 ECS
125 MCS
126 OCS
127 FCS
128 NCS
129 複合機初期化部
130 アプリケーション
131 プログラム起動部
132 ,1132 プログラミングサービス
133 オペパネ登録部
134 インタプリタ(シェル)
135 カーネル
200 PC201,1101プログラミング画面
211 起動設定ファイル
212 カスタマイズディレクトリ
220 インターネット
1734, 1801 VBインタプリタ
1901 Java(登録商標)実行環境
1911、1921 クラスライブラリ
1912、1922 仮想マシン
1914、1924 アプリケーション管理部
1923 エミュレータ
1925 Java(登録商標)コンパイラ[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an image forming apparatus and an application execution method capable of easily executing an application.
[Prior art]
2. Description of the Related Art In recent years, an image forming apparatus (hereinafter, referred to as a “multifunction peripheral”) in which functions of respective apparatuses such as a printer, a copier, a facsimile, and a scanner are housed in one housing has been known. This multifunction peripheral includes a display unit, a printing unit, an imaging unit, and the like in a single housing, and three types of software corresponding to a printer, a copying machine, and a facsimile machine, respectively. Is operated as a printer, copier, scanner or facsimile machine.
[0002]
In such a conventional multifunction peripheral, an operation panel for allowing a user to perform various operations of the multifunction peripheral is provided, and an operation display unit for displaying an operation screen and performing a touch operation input is provided on the operation panel. it's shown. In conventional multifunction devices, the functions provided in advance have been defined, so there is no significant change in the operations performed by the user on the multifunction device, and there is no need to customize the screen display of the operation display unit or the operation by touch operation. Absent. For this reason, the conventional multifunction peripheral has not been equipped with a function for customizing the operation display unit.
[0003]
[Patent Document 1]
JP 2002-152446 A
[0004]
[Problems to be solved by the invention]
By the way, in such a conventional multifunction peripheral, software corresponding to a printer, a copier, a scanner, and a facsimile machine is separately provided, and therefore, it takes a lot of time to develop each software. For this reason, the applicant has hardware resources used in image forming processing such as a display unit, a printing unit, and an imaging unit, and executes an application that performs processing unique to each user service such as a printer, a copy or a facsimile. When a plurality of devices are mounted and interposed between these applications and hardware resources to provide a user service, management, execution control and image forming processing of hardware resources required by at least two of the applications in common are provided. We have invented an image forming apparatus (multifunction peripheral) equipped with a platform comprising various control services to be performed. The processing performed by various control services is referred to as processing on the system side.
[0005]
In such a new multifunction peripheral, an application and a control service for performing difficult processing such as accessing hardware resources are separately provided. The configuration is such that a vendor develops a new external application as an application related to image forming processing and the like and can be mounted on the multifunction peripheral.
[0006]
For this reason, there is a case where it is desired to perform an execution process different from a function provided in advance by a screen display or a touch operation on the operation display unit while a newly developed external application is being started or executed. As described above, in the new multifunction peripheral, there arises a new problem of customizing the operation display unit, which is not a problem in the conventional multifunction peripheral that does not assume that an external application is installed after shipment.
[0007]
It is conceivable that such customization of the operation display unit is performed by writing the source code at the development stage of the external application, compiling and linking the source code. That is, in the development stage of the external application, an execution process associated with a touch operation on the operation display unit is often developed in the process of the external application itself. In this case, it is preferable from the viewpoint of program development efficiency to proceed with the development of the external application itself while sequentially verifying the execution processing accompanying the touch operation of the operation display unit. However, every time a failure is detected in the execution process associated with the touch operation, the source code must be corrected, recompiled, and relinked, reinstalled on the MFP to be developed, and verified for operation. There is a problem that the efficiency of program development is reduced.
[0008]
In addition to the customization of the operation display unit, there is a problem that the conventional program development based on the creation of a program in an environment such as a PC separate from the MFP and the operation verification on the MFP is inefficient.
[0009]
Furthermore, even if an application program can be efficiently developed, there is a problem in convenience if it takes time to store and execute the program in the multifunction peripheral.
[0010]
The present invention has been made in view of the above, and has as its object to provide an image forming apparatus and an application execution method capable of easily executing an application.
[Means for Solving the Problems]
The above problem is solved by the following invention.
[0011]
The invention according to claim 1 is an image forming apparatus that includes a service module that performs system-side processing related to image forming processing, and is configured to be capable of mounting an application separately from the service module. A virtual machine, and an application management unit that manages an application executed by the virtual machine.
[0012]
According to the present invention, an application operating on a virtual machine can be executed by an image forming apparatus. Generally, the virtual machine absorbs the difference between the models, so that the application can be easily executed on the image forming apparatus.
[0013]
According to a second aspect of the present invention, an interpreter is provided in place of the virtual machine, and the same effects as those of the first aspect are achieved.
[0014]
According to a third aspect of the present invention, in the first aspect, the application is a Java (registered trademark) program, and the image forming apparatus includes a class library referred to by the Java (registered trademark) program. is there.
[0015]
According to the present invention, an application using various functions provided by a class library can be executed.
[0016]
According to a fourth aspect of the present invention, in the third aspect, the class library includes a class for displaying a screen on a display unit of the image forming apparatus.
[0017]
According to a fifth aspect of the present invention, in the first or second aspect, the application management unit is connected to the image forming apparatus from a storage medium connected to the image forming apparatus or to a server connected to the image forming apparatus via a network. To load the application into the image forming apparatus.
[0018]
According to the present invention, since the loader loads the application, the application can be easily executed.
[0019]
According to a sixth aspect of the present invention, in the first or second aspect, the loader determines whether an application is loaded on the image forming apparatus, and executes the application if the application is loaded; If it is not loaded, the screen of the loader is displayed.
[0020]
According to the present invention, an application can be easily executed. If no application exists, a loader screen is displayed, so that the application can be easily loaded.
[0021]
According to a seventh aspect of the present invention, in the first or second aspect, the loader displays an application load screen and downloads an application from a location designated by a user.
[0022]
According to an eighth aspect of the present invention, in the seventh aspect, the loader displays a list of applications and downloads an application selected by the user.
[0023]
According to the present invention, an application can be easily loaded and executed.
[0024]
According to a ninth aspect of the present invention, in the seventh aspect, the location is a Web server or an FTP server that stores an application.
[0025]
According to the present invention, an application can be downloaded only by specifying a URL.
[0026]
According to a tenth aspect, in the seventh aspect, the loader checks at a predetermined interval whether or not the downloaded application has been updated at the location.
[0027]
According to the present invention, an upgraded application can be easily obtained.
[0028]
According to an eleventh aspect, in the tenth aspect, the loader displays a screen for inputting the predetermined interval, and sets the predetermined interval based on an instruction from a user. Thereby, the interval can be set.
[0029]
According to a twelfth aspect of the present invention, in the first or second aspect, a connection unit that connects the applications and executes a series of processes by the connected applications is further provided.
[0030]
According to the present invention, customization of application execution can be easily performed.
[0031]
According to a thirteenth aspect of the present invention, in the twelfth aspect, the connection unit displays a screen showing a predetermined application and a plurality of applications that are candidates to be connected to the predetermined application, and displays the plurality of screens. An application selected by the user from the applications is connected to the predetermined application.
[0032]
The present invention allows a user to visually customize application execution.
[0033]
The invention according to claims 14 to 26 is an invention of a program for realizing the function of the image forming apparatus. An invention according to claim 27 is a recording medium on which the program is recorded. According to the present invention, the same effects as those of the invention of the image forming apparatus can be obtained. The invention according to claims 28 to 31 is an invention of an application execution method of downloading and executing an application by a loader. According to the present invention, the same effects as those of the invention of the image forming apparatus are obtained.
[0034]
BEST MODE FOR CARRYING OUT THE INVENTION
Exemplary embodiments of the present invention are explained in detail below with reference to the accompanying drawings.
[0035]
(Embodiment 1)
FIG. 1 is a block diagram illustrating a configuration of a main part and a network configuration of an image forming apparatus (hereinafter, referred to as a “multifunction peripheral”) according to a first embodiment of the present invention. The multifunction peripheral 100 according to the first embodiment is connected to the Internet, and inputs a customization program of an operation display unit of an operation panel for operating the multifunction peripheral from a client terminal such as a PC (Personal Computer) connected to the Internet. This enables debugging work.
[0036]
As shown in FIG. 1, the multifunction peripheral 100 and the PC 200 are connected by the Internet 220 and use TCP / IP as a communication protocol. The multifunction peripheral 100 includes a multifunction peripheral initialization unit 129, a program activation unit 131, a programming service 132, an interpreter 134, an NCS (network control service) 128, an httpd (http daemon) 106, a shared memory 105, The configuration includes the HDD 103.
[0037]
The programming service 132 displays a programming screen 201, which is a web page composed of an http file described later, on a web browser of the PC 200 as a client terminal connected to the network. From the programming screen 201, the operation display unit of the operation panel 210 The user is required to input a customization program. Further, the programming service 132 saves the customization program input from the PC in the customization directory 212 created as a customization area of the HDD 103. Further, the programming service 132 registers the input customization program in a startup setting file 211 described below so that the customization program is executed on the MFP 100.
[0038]
Here, transfer of an http file such as a programming screen between the programming service 132 and the web browser of the PC 200 is performed according to the http protocol. For this reason, the programming service 132 also plays a role as a Web server (http server).
[0039]
The customization program is described in a language that can be interpreted by an interpreter. Specifically, when the general-purpose OS is UNIX (registered trademark), it is a shell script.
[0040]
The interpreter 134 analyzes the customization program for each step and sequentially executes the customization program. In the present embodiment, the interpreter 134 is a shell (bsh, csh, etc.) for executing a shell script. The shell 134 exists separately from the kernel 135 of the OS in UNIX (registered trademark) as the general-purpose OS 121.
[0041]
The program launching unit 131 launches the external application 117 installed in the HDD 103 when the diagnosis result of the HDD 103 is normal. Further, the program activation unit 131 activates the external application 117 stored in a storage medium such as an IC card.
[0042]
The multifunction peripheral initialization unit 129 is a process started first on the general-purpose OS 121, and starts the control service and the application 130 (excluding the external application 117) and starts the program startup unit 131.
[0043]
The NCS 128 controls the network, and notifies the programming service 132 that the request message notified from the httpd 106 has been received.
[0044]
The httpd 106 is a process (daemon) included in the OS and constantly monitors port 80 to receive a request message and transmit a response message. The structure of the request message and the response message is the same as the structure of each message in the normal http protocol, and each message includes a message body described in the html format. Also, the httpd 106 notifies the NCS 128 that the request message received via the Internet 220 has been received, and stores the request message in the shared memory 105.
[0045]
The shared memory 105 is used for inter-process communication between the httpd 106 and the programming service 132, and exchanges request messages, response messages, and the like via the shared memory 105.
[0046]
A startup setting file 211 is stored in the HDD 103, and a customization program is stored in a customization directory 212 of the HDD 103.
[0047]
The PC 200 is a client terminal that uses the programming service 132 of the multifunction peripheral 100 as a server. The PC 200 displays a programming screen 201 and other screens transmitted from the programming service 132 using the http protocol on a web browser executed by the PC 200, and inputs an operation. It is configured to be able to do it.
[0048]
Next, an overall functional configuration of the multifunction peripheral 100 according to the present embodiment will be described. FIG. 2 is a block diagram illustrating a configuration of the multifunction peripheral 100 according to the first embodiment. As shown in FIG. 2, the multifunction peripheral 100 includes a monochrome line printer (B & W LP) 101, a color line printer (Color LP) 102, a hard disk drive (HDD) 103, a scanner, a facsimile, a memory, and a network interface. It has a hardware resource 104 and a software group 110 including a platform 120, an application 130, a multifunction peripheral initialization unit 129, a program activation unit 131, and a programming service 132.
[0049]
The platform 120 is a control service that interprets a processing request from an application to generate a hardware resource acquisition request, and a system resource manager that manages one or more hardware resources and arbitrates the acquisition request from the control service. (SRM) 123 and a general-purpose OS 121.
[0050]
The control service is formed from a plurality of service modules, and includes an SCS (system control service) 122, an ECS (engine control service) 124, an MCS (memory control service) 125, an OCS (operation panel control service) 126, and an FCS. (Fax control service) 127 and NCS (network control service) 128. A programming service 132 is also included in the control service layer. The platform 120 has an application program interface (API) that enables a processing request to be received from the application 130 by using a predefined function.
[0051]
The general-purpose OS 121 is a general-purpose operating system such as UNIX (registered trademark), and executes each software of the platform 120 and the application 130 in parallel as a process.
[0052]
The process of the SRM 123, together with the SCS 122, controls the system and manages resources. The process of the SRM 123 uses hardware resources such as an engine such as a scanner unit and a printer unit, a memory, an HDD file, and a host I / O (centro I / F, network I / F, IEEE1394 I / F, RS232C I / F, etc.). Arbitration is performed according to a request from the upper layer to be used, and execution is controlled.
[0053]
Specifically, the SRM 123 determines whether the requested hardware resource is available (whether it is not used by another request), and if it is available, the requested hardware resource is used. Inform the upper layer that it is possible. The SRM 123 also schedules the use of hardware resources in response to a request from an upper layer, and directly implements the content of the request (for example, paper transport and image forming operation, memory reservation, file generation, and the like by a printer engine). .
[0054]
The process of the SCS 122 performs application management, operation unit control, system screen display, LED display, resource management, interrupt application control, and the like.
[0055]
The process of the ECS 124 controls an engine of a hardware resource 103 including a monochrome line printer (B & W LP) 101, a color line printer (Color LP) 102, a scanner, a facsimile, and the like.
[0056]
The process of the MCS 125 performs acquisition and release of an image memory, use of a hard disk device (HDD), compression and decompression of image data, and the like.
[0057]
The process of FCS 127 includes facsimile transmission / reception using PSTN / ISDN network from each application layer of the system controller, registration / quotation of various facsimile data managed by BKM (backup SRAM), facsimile reading, facsimile reception printing, fusion transmission / reception. Provides an API to do so.
[0058]
The process of the NCS 128 is a process for providing a service that can be used in common to applications that require network I / O, and distributes data received from the network by each protocol to each application, Mediation when sending to the network side. Specifically, it has server daemons such as ftpd, lpd, snmpd, telnetd, smtpd, and the like, and a client function of the same protocol.
[0059]
The process of the OCS 126 controls an operation panel (operation panel) 210 which is a means for transmitting information between an operator (user) and main body control. The OCS 126 obtains a key press (or touch operation) as a key event from the operation panel, transmits a key event function corresponding to the obtained key to the SCS 122, and operates according to a request from the application 130 or the control service. A drawing function for drawing and outputting various screens on the panel, a function for controlling the operation panel, and the like are configured from an OCS library part registered in advance. This OCS library is implemented by being linked to each module of the application 130 and the control service. Note that all of the OCS 126 may be configured to operate as a process, or all of the OCS 126 may be configured as an OCS library.
[0060]
The application 130 includes a printer application 111 that is a printer application having a page description language (PDL), PCL, and PostScript (PS), a copy application 112 that is a copy application, and a fax application 113 that is a facsimile application. , A scanner application 114 as a scanner application, a network file application 115 as a network file application, and a process inspection application 116 as a process inspection application.
[0061]
Each process of the application 130 and each process of the control service realize user services related to image forming processing such as copy, printer, scanner, and facsimile while performing inter-process communication by calling a function, transmitting a return value thereof, and transmitting and receiving a message. are doing.
[0062]
As described above, in the multifunction peripheral 100 according to the first embodiment, there are a plurality of applications 130 and a plurality of control services, all of which operate as processes. Then, one or a plurality of threads are generated inside each of these processes, and the threads are executed in parallel. Then, the control service provides a common service to the application 130. For this reason, these many processes perform parallel operation and thread parallel operation, perform inter-process communication with each other, and perform cooperative operation. User services related to image forming processes such as copying, printing, scanning, and facsimile are provided.
[0063]
Further, in the multifunction peripheral 100, a third party such as a customer or a third vendor of the multifunction peripheral 100 can develop and install an external application in an application layer above the control service layer.
[0064]
In the multifunction peripheral 100 according to the first embodiment, a plurality of processes of the application 130 and a plurality of processes of the control service are operating, but the application 130 and the control service process each have a single configuration. Is also possible. Further, each application 130 can be added or deleted for each application.
[0065]
Further, the multifunction peripheral 100 includes an installer. The installer installs the external application 117 developed by a third party in the HDD 103. In the MFP 100 according to the present embodiment, the external application 117 is stored in a storage medium of an IC card such as a flash card, the external application 117 is installed on the HDD 103 by an installer, and the external application 117 is stored in the HDD 103 by the program activation unit 131. And run it on the application layer. On the other hand, applications 130 provided when the MFP 100 is shipped, such as a printer application 111, a copy application 112, a fax application 113, a scanner application 114, a net file application 115, and a process inspection application 116, control services, an HDD diagnostic unit 132, The program starting unit 131 is built in the flash memory at the time of shipment, and is started by the multifunction peripheral initialization unit 129 when the multifunction peripheral 100 is started (when the power is turned on).
[0066]
FIG. 3 shows a hardware configuration example of the multifunction peripheral 100.
[0067]
The multifunction peripheral 100 includes a controller 160, an operation panel 175, a fax control unit (FCU) 176, and an engine unit 177 that is a hardware resource specific to image forming processing such as a printer. The controller 160 includes a CPU 161, a system memory 162, a north bridge (NB) 163, a south bridge (SB) 164, an ASIC 166, a local memory 167, an HDD 168, a network interface card (NIC) 169, and an SD card. , A USB device 171, an IEEE 1394 device 172, and a Centronics 173. Note that the memories 162 and 167 include a RAM, a ROM, and the like. The FCU 176 and the engine unit 177 are connected to the ASIC 166 of the controller 160 via a PCI bus 178.
[0068]
The CPU 161 reads a program such as an application and a control service installed in the multifunction peripheral 100 from the memory and executes the program.
[0069]
Next, a method of creating a program by the multifunction peripheral 100 configured as above according to the present embodiment will be described. First, the user starts the web browser on the PC 200 and specifies the URL of the web page of the programming screen on the multifunction peripheral 100 (for example, http: //www.xxx.yyy/zzz/debug.htm). The user accesses the programming service 132 of the multifunction peripheral 100. Upon receiving the access from the web browser, the programming service 132 displays the programming screen 201 (debug.htm) on the web browser of the PC 200.
[0070]
FIG. 7 is an explanatory diagram showing an example of the contents of the programming screen 201. As shown in FIG. 7, on the programming screen 201, a program input field, a reference button, an upload button, a save button, a delete button, a test execution button, and an execution setting button are displayed.
[0071]
Here, the programming screen 201 is a file (debug.htm) described in html format (Hyper TextMarkup Language) displayed by a browser. Further, the programming service 132 performs processing related to an operation input from a programming screen (debug.htm) and an input of a customization program according to a request by executing a CGI (Common Gateway Interface) script, and the processing result is obtained. Is reflected on the programming screen (debug.htm) and returned to the Web browser of the PC 200.
[0072]
Specifically, when there is a request (such as a button click operation) for input processing of a customization program, the programming service 132 issues debug. Execute the cgi script. Note that, in the present embodiment, each process by the web application 1117 is executed by executing a CGI script, but it may be configured to be executed by another program called from the CGI script. Note that the programming screen may be configured to be described in an XML format (extensible Markup Language).
[0073]
The reference button is a button for referring to the customization program stored in the storage area of the PC 200 on which the browser is running. When the reference button is pressed, a directory in the storage area of the PC 200 is displayed, and a desired directory is displayed. When a customization program existing in the file is specified, the file name of the specified customization program is displayed in the file name field. Note that, when the reference button is pressed, the directory of the storage medium such as the HDD 103 of the MFP 100 may be referred to.
[0074]
The upload button is used to perform a click operation to transfer (upload) the customization program specified by the reference button or the customization program input to the input field to the multifunction peripheral 100.
[0075]
The program input field is an area for inputting a customization program. In this program input field, a customization program is directly input from an input device such as a keyboard of the PC 200, and an existing program file existing in a desired directory of the PC 200 is designated by clicking the reference button as described above. By entering a customization program. debug. In htm, a character string of “program_list:” is described at the head of every line corresponding to the program input field.
[0076]
The save button is clicked when uploading the input customization program to the multifunction peripheral 100 and then storing it in the customization directory. The delete button is clicked when deleting the customization program entered in the input field.
[0077]
The execution setting button is clicked when associating a customization program with a button for executing the customization program so that the multifunction peripheral 100 can execute the customization program stored in the customization directory. When the execution setting button is pressed, the programming service 132 searches for the button (key) specified in the customization program from the button (key) in the screen file existing in the customization directory based on the key code, The customizing program is associated with the button (key), a key association table of the name of the customizing program and the key code of the button (key) is generated, and the table is stored in the HDD 103 or a flash memory.
[0078]
The test execution button is clicked when the input customization program is executed on a trial basis.
[0079]
FIG. 8 is an explanatory diagram showing an example of the content of the customization program to be input. As shown in FIG. 8, in the present embodiment, the customization program is a UNIX (registered trademark) shell script. The input shell script is sequentially executed for each step by the shell 134 which is a command interpreter of the general-purpose OS 121 (UNIX (registered trademark)). Therefore, it is not necessary to compile and link the input customization program.
[0080]
The shell script can specify a multifunction device-specific command provided by the development library. The script shown in FIG. 8 reads an original with a scanner (scanimage), decompresses image data compressed in TIF format at the time of reading (decomp), and performs character recognition processing on the decompressed image data (ocr). Then, an example is shown in which the result of recognition by the character recognition process is sent as a text data by mail. In this script, each command of scanimage, decomp, and ocr is a command provided in the development library. Further, a button (key) for executing the shell script can be specified in the customization program.
[0081]
On the programming screen 201 (debug.htm) displayed on the web browser of the PC 200, the user clicks the browse button to specify the customization program stored in the PC 200, or inputs the customization program directly into the program input field and uploads it. When the button is clicked, a request message is transmitted from the web browser to the programming service 132 of the multifunction peripheral 100. The message body of this request message contains debug. htm is included, and this debug. htm, when the upload button is clicked, debug. It describes that cgi is called. For this reason, the programming service 132 that has received and analyzed the request message becomes debug. Execute cgi.
[0082]
Here, the processing in the MFP 100 that has received the request message will be described. FIG. 4 is a flowchart illustrating a processing procedure in the multifunction peripheral 100 that has received the request message.
[0083]
The httpd 106 constantly monitors the port No. 80, and receives a request message from the PC 200 on the port No. 80 (step S301). Then, the httpd 106 reads the received request message and writes the request message to the shared memory 105 (Step S302). Next, the httpd 106 notifies the NCS 128 that the request message has been received (step S303).
[0084]
The NCS 128 that has received the notification further notifies the programming service 132 that the request message has been received (step S304). The programming service 132 reads the request message with reference to the shared memory 105, triggered by receiving the notification that the request message has been received (step S305). Then, the content of the request message is analyzed (step S306), and a process corresponding to the content described in the message body of the request message is executed (step S307). At this time, if the CGI is to be executed in the html description of the message body, the corresponding CGI is executed.
[0085]
Then, the programming service 132 returns the execution result of the process as a response message to the PC 200 that is the transmission source of the request message via the httpd 106 (step S308).
[0086]
Next, the debug. The cgi processing will be described. FIG. It is a flowchart which shows the procedure of a process of cgi. It should be noted that the programming service 132 has the debug. cgi program may be included, or debug. The cgi may be external to the programming service 132. Hereinafter, when the programming service 132 is the debug. A case where a cgi program is included will be described.
[0087]
The programming service 132 transmits the debug. htm is read line by line from the top (step S401). Then, it is determined whether or not the read line includes a character string of “program_list:” to determine whether or not the read line is a program input field (step S402).
[0088]
If it is determined that the input field is a program input field, the file is written into a program file (step S403), and the read line is transmitted as it is to the PC 200 (step S404).
[0089]
Then, it is determined whether or not the read line is the last line (step 405). If the last line, the process is terminated. If not, the above process is performed on the next line. Thereby, the program file is created in the multifunction peripheral 100, and the contents of the program uploaded to the multifunction peripheral 100 are sequentially displayed on the web browser of the PC 200.
[0090]
In addition to the above-described methods, there are various methods for transmitting a program input by the PC 200 to the MFP. For example, by pressing an upload button, the program input by the PC 200 is converted into a program file by the PC 200 and transmitted to the MFP. The multifunction peripheral stores the contents of the program file and transmits the stored contents of the program file to the PC 200 as necessary.
[0091]
After the customization program input from the programming screen 201 is uploaded to the multifunction peripheral 100 and the uploaded customization program is displayed in the program input field, the save button, the execution setting button, and the test execution button can be clicked. It becomes. The processing of the programming service 132 when one of these buttons is clicked will be described.
[0092]
FIG. 6 is a flowchart illustrating a procedure of processing of the programming service 132 when any one of a save button, an execution setting button, and a test execution button is clicked on the programming screen 201. The following processing is executed by Java (registered trademark) Script as a CGI script in the programming service 132. That is, the PC 200 detects a button operation on the programming screen 201 and transmits the event to the programming service, and the programming service 132 executes Java (registered trademark) Script corresponding to the event. Hereinafter, a description will be given assuming that Java (registered trademark) Script is included in the programming service 132.
[0093]
First, the programming service 132 determines the type of the clicked button (step S501). When the save button is clicked on the programming screen 201, the programming service 132 causes the user to specify a file name, and stores the customization program in the customization directory of the HDD 103 of the multifunction peripheral 100 under the specified name (step S502). ).
[0094]
FIG. 9 is an explanatory diagram showing an example of the name of the customization program stored in the customization directory. As shown in FIG. 9, the customization directory of the HDD 103 of the multifunction peripheral 100 is hdd / xxx / openpane, and customization programs shell1, shell2, and shell3 are stored in this customization directory.
[0095]
On the other hand, when the execution setting button is pressed on the programming screen 201, the programming service 132 associates the customization program with the button as described above (step S503).
[0096]
FIG. 10 is an explanatory diagram showing an example of the contents of the key association table. As shown in FIG. 10, the key association table associates key codes of buttons with customization program names.
[0097]
When the test execution button is pressed on the programming screen 201, the programming service 132 executes the stored customization program (step S504). This is performed, for example, by the programming service 132 executing a command for executing the customization program in the shell.
[0098]
At this time, the same screen as the screen displayed on the operation panel 210 is displayed on the browser running on the PC 200 by executing the test. This is because, for example, the programming service 132 acquires a drawing command or the like on the operation panel screen generated by the test execution of the program, and displays the same content on the screen of the PC 200 as the content displayed in response to the drawing command. This can be realized by transmitting a command to the PC 200.
[0099]
If an error occurs during the test execution, the PC 200 corrects the program, uploads the corrected program, and executes the test again.
[0100]
Next, the execution process of the customization program generated as described above will be described. FIG. 11 is a flowchart illustrating a procedure of a series of processes from when the power of the MFP 100 is turned on to when the customization program can be executed.
[0101]
When the saving of the customization program in the customization directory and the setting in the startup setting file 211 are completed, the user turns on the power of the multifunction peripheral 100 again. At this time, in the multifunction peripheral 100, a hardware diagnosis process is performed by a ROM monitor (not shown) (step S1001), and then the general-purpose OS 121 is activated (step S1002), and the multifunction peripheral initialization unit 129 is activated (step S1001). S1003). The multifunction peripheral initialization unit 129 first activates the control service (step S1004), and subsequently activates existing applications provided at the time of shipment of the multifunction peripheral 100, such as the copy application 112 and the printer application 111 (step S1005). Then, the program activating unit 131 is activated to activate a program such as an external application newly developed after shipment (step S1006).
[0102]
The program starting unit 131 first refers to the start setting file 211 of the HDD 103 (step S1007) and acquires the name of the program to be started.
[0103]
FIG. 12 is an explanatory diagram illustrating an example of the startup setting file 211. As shown in FIG. 12, a program to be activated by the program activation unit 131 is registered in the activation setting file 211 in the format of “program name, customized program name”. In the example of FIG. 12, a shell program which is a shell script is registered first, and thereafter, an xxx application is registered as an external application.
[0104]
For this reason, in the example of FIG. 12, the program starting unit 131 is set to start the shell first, and then start the XXX application which is the external application in order. Therefore, the program starting unit 131 starts the interpreter 134 (shell) first (step S1008), and then starts the XXX applications, which are external applications, in order (step S1009).
[0105]
When a button (key) to which a customization program is assigned is pressed (touch operation) among the buttons (keys) displayed on the operation display unit of the operation panel 210, the customization program described by the shell script is executed by the shell. You. This is performed, for example, as follows.
[0106]
That is, the programming service 132 acquires the press information of the button (key) to which the customization program is assigned, and acquires the customization program file name corresponding to the button by referring to the key association table. Then, an instruction for executing the customization program in the shell is executed. Note that the customization program may be executed by setting the customization program in the above-mentioned startup setting file.
[0107]
As described above, in the multifunction peripheral 100 according to the first embodiment, the programming service 132 displays the customization program programming screen on the PC 200 on the network, and allows the user to input the customization program from the screen. Run the customization program. Accordingly, in the development of the customization program, addition and correction can be performed from the programming screen, and the customization program can be executed by the multifunction peripheral 100 without recompiling and relinking due to the additional correction, and the program can be easily created.
[0108]
In the multifunction peripheral 100 according to the first embodiment, the programming service 132 displays a programming screen on the PC 200 connected to the Internet and allows the user to input a customization program from this screen. The customization program can be created more efficiently than in the case where the customization program is created and edited on the multifunction peripheral 100.
[0109]
In the multifunction peripheral 100 according to the first embodiment, the customization program is input in response to a request from the PC 200 as a client terminal connected to the Internet 220. However, the MFP 100 is connected to a network other than the Internet, for example, a LAN. It is also possible to configure so as to input the customization program from the client terminal. Further, as a communication protocol, a protocol other than TCP / IP may be used.
[0110]
Also, in the above embodiment, the multifunction peripheral transmits the program input screen to the PC 200, but the PC 200 may include a program for inputting and transmitting the program according to the present embodiment.
[0111]
(Embodiment 2)
The multifunction peripheral 100 according to the first embodiment creates a customization program in the PC 200, which is a client terminal connected to the network, and stores the customized program in the multifunction peripheral 100. The customization program is input from the operation panel of the multifunction peripheral 100.
[0112]
FIG. 13 is a block diagram illustrating a main configuration of the multifunction peripheral 1100 according to the second embodiment. The other configuration of the multifunction peripheral 1100 is the same as the configuration of the multifunction peripheral 100 of the first embodiment shown in FIG. As shown in FIG. 13, a multifunction peripheral 1100 according to the present embodiment includes a multifunction peripheral initialization unit 129, a program activation unit 131, a programming service 1132, an interpreter (shell) 134, and an HDD 103. It has become.
[0113]
The programming service 1132 displays a programming screen on the operation display unit of the operation panel 210 and allows the user to input a customization program from the displayed programming screen. Further, the programming service 1132 stores the input customization program in the customization directory 212 created as a customization area of the HDD 103. Further, the programming service 1132 can also register the customization program input in the startup setting file so that the customization program is executed on the multifunction peripheral 1100.
[0114]
The functions of the multifunction peripheral initialization unit 129, the program activation unit 131, the shell 134, the activation setting file 211 of the HDD 103, and the customization directory as a customization area are the same as those of the multifunction peripheral 100 according to the first embodiment.
[0115]
FIG. 14 is an explanatory diagram illustrating an example of the programming screen 1101. In the multifunction peripheral 1100 according to the present embodiment, in order to create a customization program, for example, a programming tag is selected from a system initialization screen to display a programming screen.
[0116]
The programming screen 1101 displays an input field, a reference button, a save button, an execution setting button, and a test execution button almost in the same manner as the screen in the first embodiment. On the programming screen 1101, a software keyboard for performing key input by touch operation is displayed on the operation display unit, and a customization program can be input to an input field.
[0117]
However, it is difficult to directly input the customization program due to the area size of the operation display unit and difficulty of input. Therefore, a customization program created by a PC or the like is stored in a desired area of a storage medium such as the HDD 103 in advance via a network, and a reference button on the programming screen 1101 is pressed to select the customization program. Preferably, a customization program is displayed in the field, a software keyboard is displayed, and only simple modifications of the program are made in the input field.
[0118]
Then, when the customization program is completed, a save button is pressed. As a result, similarly to the first embodiment, the customization program is stored in the customization directory of the HDD 103 by the programming service 1132. When the execution setting button is pressed, the customization program and the key code of the button (key) specified by the customization program are stored in a table by the programming service 1132 in the same manner as in the first embodiment. The execution process of the created customization program is the same as that of the MFP 100 of the first embodiment.
[0119]
As described above, in the multifunction peripheral 1100 according to the second embodiment, the programming service 1102 displays the programming screen 1101 on the operation display unit of the operation panel 210 and allows the user to input a customization program from this screen. A customized program can be created even in a stand-alone multifunction peripheral 1100 that is not installed.
(Embodiment 3)
In the multifunction peripherals 100 and 1100 of the first and second embodiments, the association between the customization program and the buttons (keys) of the operation display unit is performed by the description of the customization program. The machine dynamically associates a customization program with buttons (keys) on the operation display unit when the power of the MFP is turned on.
[0120]
FIG. 15 is a block diagram illustrating a functional configuration of the multifunction peripheral 1300 according to the third embodiment. In the multifunction peripheral 1300 of the present embodiment, similarly to the first embodiment, the PC 200 on the network creates a customization program, and stores and executes the customization program created in the HD 103 of the multifunction peripheral 1300.
[0121]
As shown in FIG. 15, the multifunction peripheral 1300 of the present embodiment is different from the multifunction peripheral 100 of the first embodiment shown in FIG. 2 in that the multifunction peripheral 1300 includes an operation panel registration unit 133. This is the same as the MFP 100 of the first embodiment.
[0122]
The operation panel registration unit 133 assigns buttons (keys) for executing the customization program. That is, a customization program is executed by pressing (touching) a button (key) assigned by the operation panel registration unit 133 on the operation panel.
[0123]
The process of creating and saving the customization program from the PC 200 is performed in the same manner as the programming service 131 of the first embodiment.
[0124]
Hereinafter, the customization program and the process of assigning buttons (keys) displayed on the operation display unit will be described. When the saving of the customization program in the customization directory is completed, the user turns on the power of the multifunction peripheral 100 again in order to assign the created customization program to the buttons (keys) of the operation panel 210.
[0125]
FIG. 16 is a flowchart illustrating a series of processing procedures from when the power of the multifunction peripheral 1300 is turned on to when the assignment of the customization program and the button (key) is completed.
[0126]
The processes (steps S1501 to S1506) from turning on the power of the MFP 1300 to the program activating unit 131 are the same as the processes (steps S1001 to S1006) by the MFP 100 of the first embodiment.
[0127]
The activated program activation unit 131 first refers to the activation setting file 211 of the HDD 103 (step S1507), and acquires the name of the program to be activated. FIG. 17 is an explanatory diagram showing an example of the content of the startup setting file 211 used in the present embodiment. In this example, it is set so that the program of the operation panel registration unit, the shell, and the XXX application which is the external application are sequentially activated.
[0128]
Therefore, the program starting unit 131 first starts the program of the operation panel registration unit 133 (step S1508). The program of the operation panel registration unit 133 is stored in the customization directory in advance. Next, the interpreter (shell) 134 is activated (step S1509), and finally, the registered external application is activated (step S1510).
[0129]
The started operation panel registration unit 133 displays a key assignment setting screen on the operation panel (step S1511). FIG. 18 is an explanatory diagram illustrating an example of a key assignment setting screen. As shown in FIG. 18, buttons (keys) that can be assigned to each customization program are displayed on the key assignment setting screen. When a desired button (key) is pressed (touched) on such a screen, the operation panel registration unit 133 associates the name of the corresponding customization program with the key code of the pressed button (key) and stores it as table information in a storage medium such as the HDD 103 or a flash memory (step S1512). As a result, the customization program is assigned to the buttons (keys) displayed on the operation panel.
[0130]
As described above, in the MFP 1300 according to the third embodiment, the programming service 132 displays the programming screen 201 to input the customization program, and the operation panel registration unit 133 displays and inputs the customization program on the operation display unit. Assign to buttons (keys). By activating the operation panel registration unit 133 when the power of the multifunction peripheral 1300 is turned on, a button operation when the customization program is executed can be dynamically determined when the multifunction peripheral 1300 starts.
[0131]
Note that, in the present embodiment, the assignment processing to the buttons (keys) is performed by the operation panel registration unit 133, but the button (key) assignment processing may be performed by a control service such as the SCS 122, for example. This eliminates the need to start a separate program for the allocation processing, and enables efficient processing.
[0132]
(Embodiment 4)
In the multifunction peripherals 100, 1100, and 1300 of the first to third embodiments, the customization program is executed as a shell script by the shell 134 that is a command interpreter prepared by the general-purpose OS 121 of the multifunction peripherals 100 and 1300. The multifunction peripheral according to the fourth embodiment executes a customization program using an interpreter other than the shell 134.
[0133]
FIG. 19 is a network configuration diagram including the multifunction peripheral 1700 according to the fourth embodiment. FIG. 20 is a block diagram illustrating a functional configuration of the multifunction peripheral 1700 according to the fourth embodiment. Similar to the first embodiment, the multifunction peripheral 1700 according to the fourth embodiment is connected to the Internet using TCP / IP, and performs input and debug of a customization program from the PC 200 which is a client terminal connected to the network. It is possible to do it. As the customization program, for example, there is a program for displaying a button on the operation display unit of the operation panel 210 and performing a process corresponding to the button when a certain button is pressed.
[0134]
In the multifunction peripheral 1700 according to the present embodiment, the customization program is described in the Visual Basic (registered trademark) language. Then, the created customization program is executed by a Visual Basic interpreter that operates under the general-purpose OS 121.
[0135]
As shown in FIG. 19, the multifunction peripheral 1700 includes a multifunction peripheral initialization unit 129, a program activation unit 131, a programming service 132, a Visual Basic interpreter 1734 (hereinafter, referred to as a “VB interpreter 1734”), and an NCS 128. , Httpd 106, shared memory 105, and HDD 103. The configuration and functions of the programming service 132, the MFP initialization unit 129, the program activation unit 131, the NCS 128, the httpd 106, the contents of the activation setting file 211 stored in the HDD 103, and the customization directory are described in the MFP 1 of the first embodiment. Same as 100.
[0136]
The VB interpreter 1734 analyzes the customization program for each step and sequentially executes the customization program. In the present embodiment, the creation and storage of the customization program are performed in the same manner as the programming service 132 of the first embodiment.
[0137]
Further, in the multifunction peripheral 1700 of the present embodiment, the VB interpreter 1734 needs to be activated when the multifunction peripheral 1700 is activated in order to execute the customization program by the VB interpreter 1734. For this reason, the program name of the VB interpreter 1734 is set in advance in the startup setting file 211 similar to the first embodiment.
[0138]
FIG. 21 is an explanatory diagram illustrating an example of the content of the startup setting file. As shown in FIG. 21, “VB interpreter program” is set in the first line of the startup setting file 211 used in the multifunction peripheral 1700 according to the present embodiment. For this reason, after referring to the start setting file 211, the program start unit 131 starts the VB interpreter 1734 first, so that the customization program can be executed.
[0139]
As described above, in the multifunction peripheral 1700 according to the fourth embodiment, since the customization program is executed by the VB interpreter that operates under the general-purpose OS 121, an interpreter that can perform more advanced processing than the interpreter provided by the general-purpose OS is used. Can be. Therefore, it is possible to easily create a higher-level program than using a UNIX (registered trademark) shell.
[0140]
In the fourth embodiment, the VB interpreter is not installed on the PC 200. However, the VB interpreter is generated by installing the Visual Basic development environment on the PC 200 and creating a program including the screen design of the operation display unit on the PC 200. The program may be stored in the customization directory of the multifunction peripheral 1700 using file transfer or the like.
[0141]
Further, in the multifunction peripheral 1700 of the fourth embodiment, the VB interpreter 1734 is used as an interpreter, and the customization program to be developed is described in the Visual Basic language. However, an interpreter language may be used. For example, a multifunction peripheral 1700 may be configured to include a Java (registered trademark) VM (virtual machine) and to describe the customization program in Java (registered trademark) language.
[0142]
In the multifunction peripherals according to the first to fourth embodiments, the configuration is such that the programming service 132 is mounted on the control service layer. However, the configuration may be configured such that the programming service 132 is mounted on the application layer.
[0143]
(Embodiment 5)
The multifunction peripheral according to the fourth embodiment executes a customization program using an interpreter operating under the general-purpose OS 121. The multifunction peripheral 1800 according to the fifth embodiment includes a VB interpreter 1801 and a VB interpreter. This is a configuration in which the application 1802 is mounted on the application layer.
[0144]
FIG. 22 is a block diagram illustrating a functional configuration of the multifunction peripheral according to the fifth embodiment. As in the fourth embodiment, the multifunction peripheral according to the fifth embodiment is connected to the Internet using TCP / IP, and performs input and customization of a customization program and debugging from a PC 200 which is a client terminal connected to the network. It is possible to do it. However, in the fifth embodiment, the created customization program (hereinafter, referred to as VB application) is executed by a Visual Basic interpreter (hereinafter, referred to as VB interpreter) mounted on the application layer. In the drawing, a configuration may be adopted in which the programming service 132 is mounted on the application layer.
[0145]
A VB application is created on the PC 200 in which the Visual Basic development environment is installed, the created VB application is transferred to the MFP, the VB application is stored in the MFP, and the VB application is stored in accordance with the application selection in the operation panel. The VB application is activated and executed by the VB interpreter 1801.
[0146]
Hereinafter, a more specific description will be given.
[0147]
FIG. 23 is a diagram illustrating an example of a scene in which a VB application is created on the PC 200 using the Visual Basic development environment.
[0148]
In the screen shown in the figure, a window titled Project2-Form2 (Form) and a window titled Project2-Form2 (code) are shown.
[0149]
The window entitled Project2-Form2 (Form) is used to create a menu screen displayed on the operation panel of the multifunction device. In the displayed state, three buttons are set. One is a “SCAN” button, one is a “FAX” button, and the other is a “START” button. When these buttons are pressed, the multifunction peripheral is designed to perform operations such as scanning and fax transmission.
[0150]
The window entitled Project2-Form2 (code) is for programming to describe the operation when a button on the screen of the panel is pressed.
[0151]
When the program is saved in the state shown in FIG. vbp and Form2. Two files named frm are created. Project2. In the vbp, information for managing the project and information on conditions for executing the program are stored as values of variables.
[0152]
Form2. frm is the program itself interpreted by the VB interpreter 1801, and uploads this VB application from the PC 200 via the programming service 132 on the multifunction peripheral.
[0153]
Then, when the test execution button is pressed on the programming screen 201, the VB interpreter 1801 on the MFP is activated, and the input VB application is executed. At this time, the same screen as the screen displayed on the operation panel 210 is displayed on the browser running on the PC 200 by executing the test.
[0154]
24 and 25 show examples of a VB application executed by the VB interpreter 1801.
[0155]
When the VB program shown in FIG. 24 is executed in the multifunction peripheral, first, a window including a NEXTWIN button is displayed. Then, when the NEXT WIN button is pressed, the function change_display ("Form2") is executed by call ("change_display", "Form2"), and the screen is switched to the next screen (Form2 window).
[0156]
FIG. 25 shows a VB program for displaying the Form2 window. Note that the VB program of Form2 corresponds to the screen shown in FIG.
[0157]
In the Form2 window, when the SCAN button is pressed,
Figure 2004185593
Is executed.
[0158]
The first ScanStart function means that an A4-size original is read from the ADF and stored as a binary image in the TIFF format file “/ work / tempfile” on the HDD. This function is interpreted by the VB interpreter 1801 and causes the MFP to operate.
GwOpItemCreate () in the next line is a function whose function is provided by the OCS 126 in the multifunction peripheral, and executes a function of displaying a character string on the currently displayed screen. gwOpItemCreate () is executed by the VB interpreter 1801 as a function call to the OCS 126.
[0159]
In order to execute the VB application created in this way on the MFP, the VB interpreter and the VB application are set in the startup setting file shown in FIG. 11 and, for example, the VB interpreter is set in the same manner as the procedure shown in FIG. And start the VB application.
[0160]
When the VB application is executed in the multifunction peripheral, the following processing is performed to perform a display operation on the operation panel. First, the VB interpreter 1801 waits for a screen drawing preparation completion event from the SCS 122, and upon receiving the above event, creates a window image to be initially displayed (root window generation). Next, the VB application prepares an initial screen by executing a function of generating a child window in the root window and displaying a character string. Then, by executing a function indicating completion of screen preparation, the SCS 122 is notified that the screen preparation is completed. Next, when the application selection button is selected on the operation panel, an event of an operation unit owner transfer request is issued from the SCS 122. When this event is received by the VB application, a function indicating that the operation unit owner can be transferred is executed, and at this point, the above initial screen is displayed. Thereafter, the substantial processing of the VB application is executed by the VB interpreter 1801.
[0161]
As described above, according to the present embodiment, an application can be efficiently developed by using the VB interpreter.
(Embodiment 6)
The multifunction peripheral according to the fifth embodiment has a configuration in which the VB interpreter is mounted on the application layer. However, the multifunction peripheral according to the sixth embodiment has the Java (registered trademark) execution environment mounted on the application layer. It is configured.
[0162]
FIG. 26 is a block diagram illustrating a functional configuration of a multifunction peripheral 1900 according to the sixth embodiment. As shown in the figure, a multifunction peripheral 1900 according to the sixth embodiment has a configuration in which a Java (registered trademark) execution environment 1901 and a Java (registered trademark) application 1902 are mounted on an application layer. A Java (registered trademark) application is developed on a PC (personal computer) or the like, downloaded to a multifunction peripheral, and executed using the Java (registered trademark) execution environment 1901.
[0163]
FIG. 27 illustrates a configuration of a Java (registered trademark) development environment in a PC and a configuration of a Java (registered trademark) execution environment in a multifunction peripheral 1900.
[0164]
As shown in the figure, the Java (registered trademark) execution environment in the multifunction peripheral 1900 includes a class library 1911, a virtual machine 1912, and an application management unit 1914.
[0165]
The class library 1911 is a class library used for providing a service for a Java (registered trademark) application to easily operate a multifunction peripheral. The class library according to the present embodiment includes, for example, an operation panel class, an event class, a multifunction peripheral control class, a network transaction class, a basic Java (registered trademark) class library, and the like. Note that the Java (registered trademark) application itself is also a set of classes, and the class calls a class in a class library to execute processing of the application. By including all the functions of the classes of the class library used by the Java (registered trademark) application, there may be a configuration in which the class library 1911 is not mounted.
[0166]
A Java (registered trademark) source code program is compiled, byte-coded in an intermediate code format, and loaded into the MFP. The virtual machine 1912 interprets and executes the bytecode.
[0167]
The application management unit 1914 has a function of managing Java (registered trademark) applications. For example, Java (registered trademark) application execution management such as display of a list of Java (registered trademark) applications, activation and forced termination, and the like, It has functions to load and upgrade (registered trademark) applications, delete installed Java (registered trademark) applications, set passwords for application registration, and the like.
[0168]
More specifically, as shown in FIG. 28, the execution environment of Java (registered trademark) further has a native program interface 1913. The native program interface 1913 has a function for interoperating Java (registered trademark) code executed on the virtual machine 1912 with an application or library written in another programming language such as C language. Using the mechanism of the native program interface 1913, the application can access the API of the control service.
[0169]
The Java (registered trademark) development environment shown in FIG. 27 includes the same class library 1921, virtual machine 1922, and application management unit 1924 as the Java (registered trademark) execution environment. Further, it has a Java (registered trademark) compiler 1925 for generating bytecode, and an emulator 1923 for emulating the operation of the multifunction peripheral by the application. A Java (registered trademark) application developed in the Java (registered trademark) development environment can be loaded into a Java (registered trademark) execution environment of a multifunction peripheral via a recording medium such as an IC card. It can also be loaded via a network.
[0170]
For example, as shown in FIG. 29, a Java (registered trademark) application developed in a Java (registered trademark) development environment is stored in a Web server, and the Java (registered trademark) execution environment accesses the Web server to access the Java (registered trademark). (Registered trademark) app. Also, an FTP server can be used in place of the Web server.
[0171]
(Development of Java (registered trademark) application)
Next, the development of a Java (registered trademark) application in the Java (registered trademark) development environment will be described in detail.
[0172]
FIG. 30 is a diagram showing a flow of Java (registered trademark) application development. As described above, first, a Java (registered trademark) source code is created as a Java (registered trademark) file, and this is compiled by a Java (registered trademark) compiler to obtain a class file. Then, a plurality of classes are collectively referred to as a Jar file. Preferably, the Jar file includes a file indicating a class having a main routine.
[0173]
Debugging can be performed by executing a test of a Java (registered trademark) application created in this manner on a multifunction peripheral in the same manner as in the above-described embodiments. By using the emulator 1923 shown in FIG. 27, it is possible to debug a Java (registered trademark) application without using a target MFP. This is because Java (registered trademark) uses a virtual machine, so that it is relatively easy to emulate an execution environment. When the development using the emulator is completed, the evaluation using the multifunction device can be performed by loading the Java (registered trademark) application (byte code) into the multifunction device via a network or an IC card.
[0174]
The emulator can be configured as a program described to receive a command from the Java (registered trademark) application side and perform an operation corresponding to the command. For example, in response to a display instruction on the display unit of the operation panel of the multifunction peripheral, a screen similar to the screen displayed on the multifunction peripheral is displayed on the display of the PC. However, since the PC, which is the development environment, does not have an engine (scanner, printer, or the like) in the multifunction peripheral, for example, in response to a print command from a Java (registered trademark) application, an image to be printed on the PC screen is printed Display and print on the default printer connected to the PC itself. If the user performs a copy operation on the emulator screen of the PC, for example, the user is notified to select a file to be copied from the local file system, and a dialog box for asking the destination of the copy is displayed. The specified file to its specified destination.
[0175]
The emulator can be implemented as a separate program from the virtual machine and the class library as shown in FIG. 27, or can be implemented as a class in the class library as shown in FIG.
[0176]
FIG. 32 shows an operation panel screen displayed on the PC by the emulator. Elements such as buttons displayed on this screen are equivalent to those of an actual multifunction peripheral. The emulator also has a loader function for selecting and executing the stored Java (registered trademark) application. When operating as a loader, for example, a screen shown in FIG. 33 is displayed. Then, the user selects the Java (registered trademark) application and presses the execution button to execute the Java (registered trademark) application. The Java (registered trademark) application displayed here is a class name having a main routine or a Jar file name.
[0177]
The emulator also has a function of automatically collecting status information of an application running on the emulator in a log file, and can set what messages are to be logged. For example, it is possible to set so that only serious errors that cause an abnormal termination of the application are collected as a log, or that detailed information useful for debugging the application is collected as a log.
[0178]
Debugging a program on the development environment side using an emulator is also applicable to other embodiments. That is, for example, in the first embodiment, an interpreter and an emulator similar to that of the present embodiment are mounted on the PC 200. After the program has been debugged, the user accesses the MFP for evaluation and sends the program.
[0179]
(Example of Java (registered trademark) application)
Next, an example of a Java (registered trademark) application will be described. Here, an example of a Java (registered trademark) application using a sample program using an operation panel class will be described. FIG. 34 shows a hierarchical structure of the operation panel class.
[0180]
In FIG. 34, the class of *** Window is a class for creating a window, and the class of *** Item is a class for creating an element such as a button in a window. For example, a main window as shown in FIG. 35 and elements therein are created by a program including the following codes.
[0181]
mainwindow = new PanelWindow (panel.root (), 640, 240); (a)
MessageItem msg = new MessageItem (20, 20, 600, 40); (b)
ButtonItem Button = new ButtonItem (10, 60, 80, 30); (c)
(A) above is a code for creating a main window having a width of 640 dots and a height of 240 dots. (B) is a code for creating a message item having a width of 600 and a height of 40 at the position (20, 20) of the main window. (C) is a code for creating a button of size 80 × 30 at the position (10, 60).
[0182]
The program shown in FIG. 36 is a program for mounting a user interface on the operation panel of the multifunction peripheral. As shown in FIG. 37, this program displays “Hello World” and “Your Input Was...” Messages and a “Get Input...” Button immediately after startup. When the user touches the button of "Get Input ...", a soft keyboard is displayed on the panel, and the title of "Add your Input" is displayed on the soft keyboard to prompt the user to input an arbitrary code. When the user inputs an arbitrary character string, for example, "ABCD!" From the soft keyboard, the character string input by the user is displayed below the message "Your Input Was ..." on the panel, that is, "ABCD!" Is displayed.
[0183]
Hereinafter, the contents of the sample program illustrated in FIG. 36 will be described along the numbers of the annotations described in the program.
[0184]
(1) is an instruction for using the operation panel class library. {Circle around (2)} indicates that the GWApp is inherited, whereby the application template (abstract) of the multifunction peripheral can be used. Further, the user does not need to describe complicated initial setting and end processing, and processing such as message reception can be hidden from the user. Also, an object for displaying the message "Hello World" is generated by (3), and a button object of "Get Input ..." is generated by (4). Then, an object for displaying a message of "Your Input Was ..." is generated by (5), and a message object for displaying a character input from the soft keyboard is generated by (6).
[0185]
(About execution of Java (registered trademark) application in Java (registered trademark) execution environment)
In the configuration shown in FIG. 27, by using the function of the application management unit 1914, processing from download to activation can be performed in the following procedure.
[0186]
The application management unit 1914 is activated when the multifunction peripheral is activated in the same manner as other applications, and displays a user interface on the operation panel by pressing an application activation key or the like. At this time, if the Java (registered trademark) application is not loaded, an application loading screen is displayed. The user accesses a predetermined Web site or an IC card from the application load screen and loads a Java (registered trademark) application.
[0187]
In the loading process, before loading the Java (registered trademark) application, the Web server or the like is inquired about information on the Java (registered trademark) application, and the Java (registered trademark) application can be installed. Confirm whether or not. The confirmation items include, for example, program size, version confirmation, program last update information, memory work size to be used, storage size to be used, confirmation of a network address to be used in advance, usable period (number of uses), application program name, and the like. .
[0188]
After checking the above items and determining that the application can be installed, the application management unit 1914 downloads a Java (registered trademark) application file to the multifunction peripheral.
[0189]
When the download of the Java (registered trademark) application program is completed, the application management unit 1914 acquires the application name, adds it to the application list, and simultaneously stores the Java (registered trademark) application program on the hard disk of the multifunction peripheral.
[0190]
When the above processing is completed, the downloaded Java (registered trademark) application can be used, and the user starts the Java (registered trademark) activated from the Java (registered trademark) application activation screen provided by the application management unit 1914. By selecting an application, a virtual machine can be started and a Java (registered trademark) application can be executed.
[0191]
It is also possible to execute a Java (registered trademark) application as follows. The method described below is an example of loading and executing a Java (registered trademark) application from a Web server in the configuration shown in FIG. 29. The following processing is executed by a loader (program) included in the application management unit 1914. The loader itself may be implemented as a Java (registered trademark) application, or may be implemented in C language, for example.
[0192]
FIG. 38 shows a conceptual diagram from the uploading to the downloading of the Java (registered trademark) application in the configuration shown in FIG. 29. As described above, in the Java (registered trademark) development environment, the developed and tested Java (registered trademark) application is uploaded to the Web server (step 1). The loader of the multifunction peripheral accesses the Web server (step 2), downloads a Java (registered trademark) application desired by the user (step 3), and executes the application.
[0193]
Next, the processing procedure of the loader will be described with reference to the flowchart of FIG.
[0194]
When the user presses a predetermined button for switching applications in the multifunction peripheral, the loader checks whether the Java (registered trademark) application is already loaded (step 11). (Trademark) application (step 12). Then, a Java (registered trademark) application user interface is displayed. If not, the screen of the loader is displayed (step 13). When the execution of the Java (registered trademark) application is completed, the screen of the loader is displayed. Also, when the user interface of the Java (registered trademark) application is displayed, a predetermined code is input and a predetermined button is pressed to display a loader screen.
[0195]
FIG. 40 shows a loader screen displayed on the multifunction peripheral. If there is a currently loaded Java (registered trademark) application, the loader displays the Java (registered trademark) application and the frequency with which the loader checks the Web server for updates of the Java (registered trademark) application. .
[0196]
When an application load button is touched on the loader screen, an application load window shown in FIG. 41 is displayed (step 14). Here, the user inputs the URL of the Java (registered trademark) application. To enter a URL, touch the URL button to display a soft keyboard, and enter the URL by typing from the soft keyboard. Also, by touching a URL button, a list of URLs of Java (registered trademark) applications as shown in FIG. 42 may be displayed, and a desired Java (registered trademark) application may be selected from the list. . In addition, if necessary, a class name having a main routine in the selected Java (registered trademark) application (Jar file) is input in the class name column shown in FIG.
[0197]
Thereafter, by touching the OK button on the screen shown in FIG. 41, the Java (registered trademark) application is downloaded from the Web server (step 15) and executed by the multifunction peripheral.
[0198]
The loader automatically checks the Web server at specified intervals to determine whether a new version of the Java (registered trademark) application is stored in the Web server. This is performed by comparing the date and time stamp of the currently running Java (registered trademark) application with those on the Web server. If a new version of the Java (registered trademark) application is found, the currently running Java (registered trademark) application is deleted, and the new version of the Java (registered trademark) application is downloaded.
[0199]
To change the update interval, a screen shown in FIG. 43 is displayed by touching the update interval button on the screen shown in FIG. 40 (step 16). In this screen, use the arrow keys to select hours or minutes, and use the numeric keys on the operation panel to enter a new time interval.
[0200]
When deleting the Java (registered trademark) application from the multifunction peripheral, the screen shown in FIG. 44 is displayed by touching the unload button on the screen shown in FIG. 40 (step 17). Here, touching the "OK" button deletes the Java (registered trademark) application.
[0201]
The loader ends by touching the Exit button on the screen of FIG.
[0202]
By the way, in this embodiment, it is possible to create a customization program by connecting Java (registered trademark) applications. The flow of this processing will be described with reference to FIG. Note that the program itself for creating the customization program is also a Java (registered trademark) application, and is hereinafter referred to as a customization application. Note that the customization application may be provided in the image forming apparatus in advance.
[0203]
First, the screen of the operation display unit is switched to the loader screen of FIG. 40, and the customization application is loaded and executed.
[0204]
The customization application displays screen 1 in FIG. The screen 1 displays only paper objects. An object other than the paper object can be inserted. Objects can be moved in and out with the "In" button and the "Eject" button. In the screen 1, attributes such as a read / write permission attribute can be set for a paper object by a “read permission” button.
[0205]
Touching paper on screen 1 displays a list of objects connected to the paper object, as shown on screen 2. When the user selects “scan”, the screen transits to the screen 3, and when the user touches the scan, a list of objects connected to the scan object is displayed as a screen 4. When mail is selected on the screen 4, the screen transits to the screen 5.
[0206]
Thereafter, by touching the “setting” button, a customization program for performing processing of scanning and transmitting the image file by e-mail is generated. In addition, keys are assigned as shown in the screen 6. By operating this key on the multifunction peripheral, the above-described customization program is executed. This customization program is a program described so as to sequentially execute the classes of the linked objects.
[0207]
Note that storing an application on a Web server and downloading a desired application from the Web server to a multifunction peripheral and connecting and customizing the application as in the present embodiment are different from the other embodiments. Is also applicable. For example, in the above-described configuration using a VB interpreter, by providing a loader having the same function as that of the present embodiment, an application can be downloaded from a server as in the present embodiment.
[0208]
The service programs and application programs described so far can be stored in a recording medium such as an IC card, and can be stored in the image forming apparatus from there. Further, the image data can be stored in an image forming apparatus from an external server via a network.
[0209]
As described above, according to the present embodiment, an application can be efficiently developed by using the Java (registered trademark) environment.
The present invention is not limited to the above-described embodiment, but can be variously modified and applied within the scope of the claims.
【The invention's effect】
As described above, according to the present invention, it is possible to obtain an image forming apparatus and an application execution method that can easily execute an application.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a main configuration and a network configuration of a multifunction peripheral according to a first embodiment.
FIG. 2 is a block diagram illustrating a functional configuration of the MFP according to the first embodiment.
FIG. 3 is a block diagram illustrating a hardware configuration of the multifunction peripheral according to the first embodiment;
FIG. 4 is a flowchart illustrating a procedure of processing in the multifunction peripheral that has received the request message.
FIG. It is a flowchart which shows the procedure of a process of cgi.
FIG. 6 is a flowchart illustrating a procedure of processing of the web application when any one of a save button, an execution setting button, and a test execution button is clicked on the programming screen.
FIG. 7 is an explanatory diagram showing an example of the contents of a programming screen.
FIG. 8 is an explanatory diagram showing an example of a customization program input to a program input field.
FIG. 9 is an explanatory diagram showing an example of a name of a customization program stored in a customization directory.
FIG. 10 is an explanatory diagram showing an example of the contents of a key association table.
FIG. 11 is a flowchart illustrating a procedure of a series of processes from power-on of the multifunction peripheral to execution of the customization program.
FIG. 12 is an explanatory diagram illustrating an example of a startup setting file.
FIG. 13 is a block diagram illustrating a main configuration of the multifunction peripheral according to the second embodiment.
FIG. 14 is an explanatory diagram illustrating an example of a programming screen.
FIG. 15 is a block diagram illustrating a functional configuration of the multifunction peripheral according to the third embodiment;
FIG. 16 is a flowchart showing a series of processing procedures from when the power of the multifunction peripheral is turned on to when the assignment of the customization program and the button (key) is completed.
FIG. 17 is an explanatory diagram illustrating an example of the content of a startup setting file.
FIG. 18 is an explanatory diagram illustrating an example of a key assignment setting screen.
FIG. 19 is a block diagram illustrating a main configuration and a network configuration of a multifunction peripheral according to a fourth embodiment.
FIG. 20 is a block diagram illustrating a functional configuration of the multifunction peripheral according to the fourth embodiment;
FIG. 21 is an explanatory diagram showing an example of the contents of a startup setting file.
FIG. 22 is a block diagram illustrating a functional configuration of the multifunction peripheral according to the fifth embodiment;
FIG. 23 is a diagram showing a scene in which a VB application is created on the PC 200 using the Visual Basic development environment.
FIG. 24 is a diagram illustrating an example of a VB application executed by a VB interpreter.
FIG. 25 is a diagram illustrating an example of a VB application executed by a VB interpreter.
FIG. 26 is a block diagram illustrating a functional configuration of a multifunction peripheral according to a sixth embodiment;
FIG. 27 is a diagram showing a Java (registered trademark) development environment and a Java (registered trademark) execution environment.
FIG. 28 is a diagram illustrating an example of a configuration of a Java (registered trademark) execution environment.
FIG. 29 is a diagram showing a configuration for downloading a Java (registered trademark) application from a Web server.
FIG. 30 is a diagram showing a procedure for creating a Java (registered trademark) application.
FIG. 31 is a diagram illustrating another implementation example of an emulator.
FIG. 32 is a diagram showing a screen of an operation panel displayed on a PC by an emulator.
FIG. 33 is a diagram showing a screen displayed when the emulator operates as a loader.
FIG. 34 is a diagram showing a hierarchical configuration of an operation panel class.
FIG. 35 is a diagram illustrating the creation of a window.
FIG. 36 is a diagram showing a sample program.
FIG. 37 is a diagram showing an execution result of a sample program.
38 is a conceptual diagram from uploading to downloading of a Java (registered trademark) application in the configuration shown in FIG. 29.
FIG. 39 is a flowchart illustrating a processing procedure of a loader.
FIG. 40 is a diagram showing a loader screen displayed on the multifunction peripheral.
FIG. 41 is a screen for loading an application.
FIG. 42 is a list of URLs of Java (registered trademark) applications.
FIG. 43 is a screen for changing an update interval.
FIG. 44 is a screen for unloading an application.
FIG. 45 is a diagram illustrating a procedure for creating a customization program by linking Java (registered trademark) applications.
[Explanation of symbols]
100, 1100, 1300, 1700, 1800, 1900 MFP
101 black and white line printer
102 color line printer
103 Hard Disk Drive (HDD)
104 Hardware resources
105 Shared memory
106 httpd
110 software group
111 Printer App
112 Copy application
113 Fax App
114 Scanner App
115 Net File App
116 Process inspection application
117 External application
120 platform
121 General-purpose OS
122 SCS
123 SRM
124 ECS
125 MCS
126 OCS
127 FCS
128 NCS
129 Multifunction machine initialization section
130 Application
131 Program Launcher
132, 1132 Programming Services
133 Operation Panel Registration Department
134 interpreter (shell)
135 kernel
200 PC201, 1101 programming screen
211 Start setting file
212 customization directory
220 Internet
1734, 1801 VB interpreter
1901 Java (registered trademark) execution environment
1911, 1921 Class library
1912, 1922 Virtual machines
1914, 1924 Application management unit
1923 emulator
1925 Java (registered trademark) compiler

Claims (31)

画像形成処理に関するシステム側の処理を行うサービスモジュールを有し、当該サービスモジュールとは別にアプリケーションを搭載可能に構成された画像形成装置において、
アプリケーションを実行する仮想マシンと、
当該仮想マシンにより実行されるアプリケーションを管理するアプリケーション管理部と
を備えたことを特徴とする画像形成装置。
An image forming apparatus that has a service module that performs system-side processing related to image forming processing, and is configured to be able to mount an application separately from the service module.
A virtual machine that runs the application,
An image forming apparatus comprising: an application management unit that manages an application executed by the virtual machine.
前記仮想マシンに代えてインタプリタを備えた請求項1に記載の画像形成装置。The image forming apparatus according to claim 1, further comprising an interpreter instead of the virtual machine. 前記アプリケーションはJava(登録商標)プログラムであり、前記画像形成装置は、当該Java(登録商標)プログラムが参照するクラスライブラリを備えた請求項1に記載の画像形成装置。The image forming apparatus according to claim 1, wherein the application is a Java (registered trademark) program, and the image forming apparatus includes a class library referred to by the Java (registered trademark) program. 前記クラスライブラリは、前記画像形成装置の表示部への画面表示を行うためのクラスを含む請求項3に記載の画像形成装置。The image forming apparatus according to claim 3, wherein the class library includes a class for displaying a screen on a display unit of the image forming apparatus. 前記アプリケーション管理部は、前記画像形成装置に接続される記憶媒体から、又はネットワークを介して前記画像形成装置に接続されるサーバから、アプリケーションを前記画像形成装置にロードするローダーである請求項1又は2に記載の画像形成装置。The application management unit is a loader that loads an application to the image forming apparatus from a storage medium connected to the image forming apparatus or from a server connected to the image forming apparatus via a network. 3. The image forming apparatus according to 2. 前記ローダーは、アプリケーションが前記画像形成装置にロードされているか否かを判断し、ロードされていれば当該アプリケーションを実行し、ロードされていなければローダーの画面を表示する請求項1又は2に記載の画像形成装置。3. The loader according to claim 1, wherein the loader determines whether an application is loaded on the image forming apparatus, executes the application if the application is loaded, and displays a screen of the loader if the application is not loaded. 4. Image forming apparatus. 前記ローダーは、アプリケーションロード画面を表示し、ユーザにより指定された場所からアプリケーションをダウンロードする請求項1又は2に記載の画像形成装置。The image forming apparatus according to claim 1, wherein the loader displays an application load screen and downloads an application from a location specified by a user. 前記ローダーは、アプリケーションのリストを表示し、ユーザにより選択されたアプリケーションをダウンロードする請求項7に記載の画像形成装置。The image forming apparatus according to claim 7, wherein the loader displays a list of applications and downloads an application selected by a user. 前記場所は、アプリケーションを格納するWebサーバ又はFTPサーバである請求項7に記載の画像形成装置。The image forming apparatus according to claim 7, wherein the location is a Web server or an FTP server that stores an application. 前記ローダーは、ダウンロードしたアプリケーションが、前記場所において更新されているか否かを所定の間隔でチェックする請求項7に記載の画像形成装置。The image forming apparatus according to claim 7, wherein the loader checks at a predetermined interval whether or not the downloaded application has been updated at the location. 前記ローダーは、前記所定の間隔を入力するための画面を表示し、ユーザからの指示に基づき当該所定の間隔を設定する請求項10に記載の画像形成装置。The image forming apparatus according to claim 10, wherein the loader displays a screen for inputting the predetermined interval, and sets the predetermined interval based on an instruction from a user. アプリケーションを連結して、連結されたアプリケーションにより一連の処理を実行させる連結手段を更に備えた請求項1又は2に記載の画像形成装置。3. The image forming apparatus according to claim 1, further comprising a connection unit that connects the applications and executes a series of processes by the connected applications. 前記連結手段は、所定のアプリケーションと、その所定のアプリケーションに接続される候補となる複数のアプリケーションを示す画面を表示し、当該複数のアプリケーションの中からユーザにより選択されたアプリケーションを前記所定のアプリケーションに接続する請求項12に記載の画像形成装置。The connection unit displays a screen showing a predetermined application and a plurality of applications that are candidates to be connected to the predetermined application, and sets an application selected by a user from the plurality of applications to the predetermined application. The image forming apparatus according to claim 12, which is connected. 画像形成処理に関するシステム側の処理を行うサービスモジュールを有し、当該サービスモジュールとは別にアプリケーションを搭載可能に構成された画像形成装置を、
アプリケーションを実行する手段としての仮想マシン、
当該仮想マシンにより実行されるアプリケーションを管理するアプリケーション管理部
として機能させるプログラム。
An image forming apparatus having a service module that performs system-side processing related to image forming processing, and configured to be able to mount an application separately from the service module,
Virtual machines as a means of running applications,
A program that functions as an application management unit that manages an application executed by the virtual machine.
画像形成処理に関するシステム側の処理を行うサービスモジュールを有し、当該サービスモジュールとは別にアプリケーションを搭載可能に構成された画像形成装置を、
アプリケーションを実行する手段としてのインタプリタ、
当該インタプリタにより実行されるアプリケーションを管理するアプリケーション管理部
として機能させるプログラム。
An image forming apparatus having a service module that performs system-side processing related to image forming processing, and configured to be able to mount an application separately from the service module,
An interpreter as a means to run the application,
A program that functions as an application management unit that manages an application executed by the interpreter.
前記アプリケーションはJava(登録商標)プログラムであり、前記プログラムは、当該Java(登録商標)プログラムが参照するクラスライブラリを含む請求項14に記載のプログラム。The program according to claim 14, wherein the application is a Java (registered trademark) program, and the program includes a class library referred to by the Java (registered trademark) program. 前記クラスライブラリは、前記画像形成装置の表示部への画面表示を行うためのクラスを含む請求項16に記載のプログラム。17. The program according to claim 16, wherein the class library includes a class for displaying a screen on a display unit of the image forming apparatus. 前記アプリケーション管理部は、前記画像形成装置に接続される記憶媒体から、又はネットワークを介して前記画像形成装置に接続されるサーバから、アプリケーションを前記画像形成装置にロードするローダーである請求項14又は15に記載のプログラム。The application management unit is a loader that loads an application from the storage medium connected to the image forming apparatus or from a server connected to the image forming apparatus via a network. 15. The program according to 15. 前記ローダーは、アプリケーションが前記画像形成装置にロードされているか否かを判断し、ロードされていれば当該アプリケーションを実行し、ロードされていなければローダーの画面を表示する請求項14又は15に記載のプログラム。16. The loader according to claim 14, wherein the loader determines whether an application is loaded on the image forming apparatus, executes the application if the application is loaded, and displays a screen of the loader if the application is not loaded. Program. 前記ローダーは、アプリケーションロード画面を表示し、ユーザにより指定された場所からアプリケーションをダウンロードする請求項14又は15に記載のプログラム。The program according to claim 14, wherein the loader displays an application load screen and downloads an application from a location designated by a user. 前記ローダーは、アプリケーションのリストを表示し、ユーザにより選択されたアプリケーションをダウンロードする請求項20に記載のプログラム。21. The program according to claim 20, wherein the loader displays a list of applications and downloads an application selected by a user. 前記場所は、アプリケーションを格納するWebサーバ又はFTPサーバである請求項20に記載のプログラム。The program according to claim 20, wherein the location is a Web server or an FTP server that stores an application. 前記ローダーは、ダウンロードしたアプリケーションが、前記場所において更新されているか否かを所定の間隔でチェックする請求項20に記載のプログラム。21. The program according to claim 20, wherein the loader checks at a predetermined interval whether the downloaded application has been updated at the location. 前記ローダーは、前記所定の間隔を入力するための画面を表示し、ユーザからの指示に基づき当該所定の間隔を設定する請求項23に記載のプログラム。The program according to claim 23, wherein the loader displays a screen for inputting the predetermined interval, and sets the predetermined interval based on an instruction from a user. 前記画像形成装置を、アプリケーションを連結して、連結されたアプリケーションにより一連の処理を実行させる連結手段として更に機能させる請求項14又は15に記載のプログラム。The program according to claim 14, wherein the image forming apparatus further functions as a connection unit that connects applications and executes a series of processes by the connected applications. 前記連結手段は、所定のアプリケーションと、その所定のアプリケーションに接続される候補となる複数のアプリケーションを示す画面を表示し、当該複数のアプリケーションの中からユーザにより選択されたアプリケーションを前記所定のアプリケーションに接続する請求項25に記載のプログラム。The connection unit displays a screen showing a predetermined application and a plurality of applications that are candidates to be connected to the predetermined application, and sets an application selected by a user from the plurality of applications to the predetermined application. The program according to claim 25, wherein the program is connected. 請求項14ないし26のうちいずれか1項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。A computer-readable recording medium recording the program according to any one of claims 14 to 26. アプリケーションを実行する仮想マシンと、当該仮想マシンにより実行されるアプリケーションを管理するアプリケーション管理部とを備えた画像形成装置におけるアプリケーション実行方法であって、
前記アプリケーション管理部が、アプリケーションロード画面を表示し、ユーザにより指定された場所からアプリケーションをダウンロードし、ダウンロードしたアプリケーションを実行するステップを有することを特徴とするアプリケーション実行方法。
An application execution method in an image forming apparatus, comprising: a virtual machine that executes an application; and an application management unit that manages an application executed by the virtual machine.
The application execution method, further comprising a step of displaying the application load screen, downloading the application from a location designated by a user, and executing the downloaded application.
前記画像形成装置は、前記仮想マシンに代えてインタプリタを備えた請求項28に記載のアプリケーション実行方法。29. The application execution method according to claim 28, wherein the image forming apparatus includes an interpreter instead of the virtual machine. 前記場所は、前記画像形成装置に接続される記録媒体、又はネットワークを介して前記画像形成装置に接続されるサーバである請求項28又は29に記載のアプリケーション実行方法。30. The application execution method according to claim 28, wherein the location is a recording medium connected to the image forming apparatus or a server connected to the image forming apparatus via a network. 前記アプリケーション管理部は、アプリケーションのリストを表示し、ユーザにより選択されたアプリケーションをダウンロードする請求項28又は29に記載のアプリケーション実行方法。30. The application execution method according to claim 28, wherein the application management unit displays a list of applications and downloads an application selected by a user.
JP2003199947A 2002-07-26 2003-07-22 Image forming apparatus and application execution method Pending JP2004185593A (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2003199947A JP2004185593A (en) 2002-07-26 2003-07-22 Image forming apparatus and application execution method
EP03254672A EP1385089A3 (en) 2002-07-26 2003-07-25 Image forming apparatus, information processing apparatus, program execution method and program producing method
US10/626,608 US7554685B2 (en) 2002-07-26 2003-07-25 Image forming apparatus, information processing apparatus, program execution method and program producing method
CN 200510113871 CN1818871B (en) 2002-07-26 2003-07-28 Information processing device
CNB03160255XA CN1273888C (en) 2002-07-26 2003-07-28 Imaging device, information processing device, program executive method and program generating method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002218814 2002-07-26
JP2002295378 2002-10-08
JP2003199947A JP2004185593A (en) 2002-07-26 2003-07-22 Image forming apparatus and application execution method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008201194A Division JP4542180B2 (en) 2002-07-26 2008-08-04 Image forming apparatus, program, and recording medium

Publications (1)

Publication Number Publication Date
JP2004185593A true JP2004185593A (en) 2004-07-02

Family

ID=32776758

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003199947A Pending JP2004185593A (en) 2002-07-26 2003-07-22 Image forming apparatus and application execution method

Country Status (1)

Country Link
JP (1) JP2004185593A (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004312711A (en) * 2003-03-25 2004-11-04 Ricoh Co Ltd Image forming apparatus and method for operating image forming apparatus by using remote application
JP2006085356A (en) * 2004-09-15 2006-03-30 Canon Inc Built-in device and control method therefor
JP2006148876A (en) * 2004-10-18 2006-06-08 Ricoh Co Ltd Image formation apparatus, information processing method, information processing program, and recording medium
JP2007318562A (en) * 2006-05-26 2007-12-06 Kyocera Mita Corp Image forming apparatus
JP2007317032A (en) * 2006-05-26 2007-12-06 Kyocera Mita Corp Apparatus for supporting development of user application for image forming apparatus
JP2008301484A (en) * 2008-05-19 2008-12-11 Canon Inc Structure of syndication data
JP2010057186A (en) * 2003-03-25 2010-03-11 Ricoh Co Ltd Terminal device, method, and program
US7734773B2 (en) 2006-10-05 2010-06-08 Ricoh Company, Ltd. Web system, communication control device, and storage medium
JP2010166603A (en) * 2010-03-19 2010-07-29 Canon Inc Image processing apparatus, control method thereof and program
JP2011124956A (en) * 2009-12-14 2011-06-23 Canon Inc Information processing apparatus, control method of the same, program, and storage medium
JP2012032938A (en) * 2010-07-29 2012-02-16 Yahoo Japan Corp Method of allowing user terminal to analyze and execute script program, script program, and user terminal

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001037085A1 (en) * 1999-11-17 2001-05-25 Bull Cp8 Method for loading applications in a multiapplication onplatform system equipped with data processing resources, corresponding executing system and method
JP2001147815A (en) * 1999-11-19 2001-05-29 Canon Inc Device and system for forming image
JP2002152458A (en) * 2000-08-31 2002-05-24 Ricoh Co Ltd Picture formation system, software acquisition method and computer readable recording medium with program for allowing computer to execute the method recorded
JP2003125146A (en) * 2001-10-10 2003-04-25 Konica Corp Image forming device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001037085A1 (en) * 1999-11-17 2001-05-25 Bull Cp8 Method for loading applications in a multiapplication onplatform system equipped with data processing resources, corresponding executing system and method
JP2001147815A (en) * 1999-11-19 2001-05-29 Canon Inc Device and system for forming image
JP2002152458A (en) * 2000-08-31 2002-05-24 Ricoh Co Ltd Picture formation system, software acquisition method and computer readable recording medium with program for allowing computer to execute the method recorded
JP2003125146A (en) * 2001-10-10 2003-04-25 Konica Corp Image forming device

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4523991B2 (en) * 2003-03-25 2010-08-11 株式会社リコー Terminal device, method, system, and program
JP2004312711A (en) * 2003-03-25 2004-11-04 Ricoh Co Ltd Image forming apparatus and method for operating image forming apparatus by using remote application
JP2010057186A (en) * 2003-03-25 2010-03-11 Ricoh Co Ltd Terminal device, method, and program
JP2006085356A (en) * 2004-09-15 2006-03-30 Canon Inc Built-in device and control method therefor
EP1638017B1 (en) * 2004-09-15 2018-02-28 Canon Kabushiki Kaisha Method, program and storage medium for controlling an embedded device
JP2006148876A (en) * 2004-10-18 2006-06-08 Ricoh Co Ltd Image formation apparatus, information processing method, information processing program, and recording medium
JP4597834B2 (en) * 2004-10-18 2010-12-15 株式会社リコー Image forming apparatus, information processing method, information processing program, and recording medium
JP4657149B2 (en) * 2006-05-26 2011-03-23 京セラミタ株式会社 User application development support device for image forming apparatus
JP2007317032A (en) * 2006-05-26 2007-12-06 Kyocera Mita Corp Apparatus for supporting development of user application for image forming apparatus
JP2007318562A (en) * 2006-05-26 2007-12-06 Kyocera Mita Corp Image forming apparatus
US7734773B2 (en) 2006-10-05 2010-06-08 Ricoh Company, Ltd. Web system, communication control device, and storage medium
JP2008301484A (en) * 2008-05-19 2008-12-11 Canon Inc Structure of syndication data
JP2011124956A (en) * 2009-12-14 2011-06-23 Canon Inc Information processing apparatus, control method of the same, program, and storage medium
JP2010166603A (en) * 2010-03-19 2010-07-29 Canon Inc Image processing apparatus, control method thereof and program
JP4653243B2 (en) * 2010-03-19 2011-03-16 キヤノン株式会社 Image processing apparatus and control method and program thereof
JP2012032938A (en) * 2010-07-29 2012-02-16 Yahoo Japan Corp Method of allowing user terminal to analyze and execute script program, script program, and user terminal

Similar Documents

Publication Publication Date Title
US7554685B2 (en) Image forming apparatus, information processing apparatus, program execution method and program producing method
US7533381B2 (en) Image forming apparatus and method for operating image forming apparatus by using remote application
US10764450B2 (en) Method and apparatus to input workflow steps and parameters
US8094330B2 (en) Image forming apparatus that can launch external applications selectively after shipment of the apparatus
JP2004185595A (en) Information processor and program therefor
JP4344203B2 (en) Image forming apparatus and information display method
JP4198551B2 (en) Image forming apparatus and program execution method
JP2004185593A (en) Image forming apparatus and application execution method
JP4090806B2 (en) Image information processing apparatus and application installation method
JP2004118237A (en) Image forming apparatus and application installing method
JP4394740B2 (en) Image forming apparatus, method, and program
JP4512565B2 (en) Image forming apparatus and application installation method
JP4523991B2 (en) Terminal device, method, system, and program
JP4542180B2 (en) Image forming apparatus, program, and recording medium
JP4133085B2 (en) Image forming apparatus and customized program test method
JP4500333B2 (en) Image information processing apparatus, installation method, program, and recording medium
CN100535861C (en) Imaging device
JP2006271005A (en) Image forming apparatus and method for installing application
JP4340704B2 (en) Image information processing apparatus and application installation method
JP2010218469A (en) Information processor, information processing method, program and recording medium
JP2012039655A (en) Image forming apparatus, program and method
JP2003263321A (en) Image forming device application generation method, image forming device application starting method, image forming device application generation program, image forming device, and image forming device application development recording medium
JP2023020028A (en) Information processing system, information processing apparatus, and program
JP2023011236A (en) Information processing system, information processing method, and program
JP2023007730A (en) Information processing system, information processing method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051101

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080331

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080603

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080902

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081216