JP4198551B2 - 画像形成装置およびプログラム実行方法 - Google Patents

画像形成装置およびプログラム実行方法 Download PDF

Info

Publication number
JP4198551B2
JP4198551B2 JP2003199948A JP2003199948A JP4198551B2 JP 4198551 B2 JP4198551 B2 JP 4198551B2 JP 2003199948 A JP2003199948 A JP 2003199948A JP 2003199948 A JP2003199948 A JP 2003199948A JP 4198551 B2 JP4198551 B2 JP 4198551B2
Authority
JP
Japan
Prior art keywords
program
key
forming apparatus
image forming
application
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.)
Expired - Lifetime
Application number
JP2003199948A
Other languages
English (en)
Other versions
JP2004185594A (ja
Inventor
勉 大石
克彦 中川
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 JP2003199948A priority Critical patent/JP4198551B2/ja
Priority to EP03254672A priority patent/EP1385089A3/en
Priority to US10/626,608 priority patent/US7554685B2/en
Priority to CNB03160255XA priority patent/CN1273888C/zh
Priority to CN 200510113871 priority patent/CN1818871B/zh
Publication of JP2004185594A publication Critical patent/JP2004185594A/ja
Application granted granted Critical
Publication of JP4198551B2 publication Critical patent/JP4198551B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

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

Description

【0001】
【発明の属する技術分野】
この発明は、操作表示部のカスタマイズを行うことができる画像形成装置および画像形成装置で動作するアプリケーションプログラムの実行方法に関するものである。
【従来の技術】
近年では、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を1つの筐体内に収納した画像形成装置(以下、「複合機」という。)が知られている。この複合機は、1つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応した3種類のソフトウェアを設け、これらのソフトウェアを切り替えることによって、当該装置をプリンタ、コピー、スキャナ又はファクシミリ装置として動作させるものである。
【0002】
このような従来の複合機では、利用者に対し複合機の各種操作を行わせるためのオペレーションパネルが設けられ、このオペレーションパネルに操作画面の表示およびタッチ操作入力を行わせるための操作表示部を表示している。従来の複合機では、予め提供される機能が定められていたため、利用者が複合機に対して行う操作も大きな変更はなく、操作表示部の画面表示やタッチ操作による動作をカスタマイズする必要性はない。このため、従来の複合機には操作表示部のカスタマイズ機能は搭載されていなかった。
【0003】
【特許文献1】
特開2002−152446号公報
【0004】
【発明が解決しようとする課題】
ところで、このような従来の複合機では、プリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェアをそれぞれ別個に設けているため、各ソフトウェアの開発に多大の時間を要する。このため、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピー又はファクシミリなどの各ユーザサービスにそれぞれ固有の処理を行うアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも2つが共通に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた画像形成装置(複合機)を発明した。なお、各種コントロールサービスが行う処理をシステム側の処理と呼ぶ。
【0005】
このような新規な複合機では、アプリケーションと、ハードウェア資源にアクセスするような開発が難しい処理を行うコントロールサービスとを別個に設けているため、複合機の出荷後にユーザもしくは第三者であるサードベンダが画像形成処理などにかかるアプリケーションとして新規な外部アプリケーションを開発して複合機に搭載可能な構成となっている。
【0006】
このため、新たに開発された外部アプリケーションの起動や実行中に操作表示部における画面表示やタッチ操作によって、予め提供されている機能とは異なる実行処理を行わせたい場合がある。このように、新規な複合機では、操作表示部のカスタマイズという、出荷後に外部アプリケーションを搭載することを想定していない従来の複合機では問題にならなかった新規な課題が生じてくる。
【0007】
このような操作表示部のカスタマイズを、外部アプリケーションの開発段階でソースコードを記述し、ソースコードをコンパイルおよびリンクすることによって行うことが考えられる。すなわち、外部アプリケーションの開発段階で、外部アプリケーション自体の処理の中に操作表示部のタッチ操作に伴う実行処理を開発する場合が多くなる。この場合、操作表示部のタッチ操作に伴う実行処理の検証を逐次行いながら外部アプリケーション自体の開発を進めていくことがプログラム開発効率上好ましい。しかしながら、タッチ操作に伴う実行処理に障害を検出するたびに、ソースコードの修正、再コンパイル、再リンクを行って、開発対象の複合機に再インストールし、動作検証を行わなければならないとすると、プログラム開発の効率が悪くなるという問題がある。
【0008】
また、操作表示部のカスタマイズに限らず、複合機とは別のPC等の環境でのプログラムの作成と、複合機での動作検証とによる従来のプログラム開発は効率が悪いという問題がある。
【0009】
この発明は上記に鑑みてなされたもので、プログラム開発効率を向上させることができる技術を提供することを目的とする。
【課題を解決するための手段】
上記の課題は以下の発明によって解決される。
【0010】
請求項1に記載の発明は、クライアント端末にプログラムの入力画面データをネットワークを介して送信し、当該クライアント端末に入力されたプログラムを受信するプログラム取得手段と、前記プログラム取得手段によって受信した前記プログラムを実行するプログラム実行手段と、を備えた画像形成装置であって、前記クライアント端末からの要求に応じて、前記プログラム取得手段が受信した前記プログラムに、前記画像形成装置の操作表示部におけるキーを対応付け、当該プログラムと当該キーとの対応付けを示す表を前記画像形成装置が備える記憶手段に格納することを特徴とする画像形成装置である。
【0011】
本発明によれば、クライアント端末側の入力画面からプログラムの追加、修正ができ、またコンパイルなしに画像形成装置でプログラムを実行できるので、プログラムの動作を容易に確認できる。従って、プログラムを容易に開発できるようになる。
【0012】
請求項2に記載の発明は、クライアント端末にプログラムの入力画面データをネットワークを介して送信し、当該クライアント端末に入力されたプログラムを受信するプログラム取得手段と、前記プログラム取得手段によって受信した前記プログラムを実行するプログラム実行手段と、を備えた画像形成装置であって、前記プログラムに対するキーの割り当てをユーザが行うためのキー割付け画面を前記画像形成装置の操作表示部に表示し、前記プログラムに、前記キー割付け画面においてユーザにより指定されたキーを対応付け、当該プログラムと当該キーとの対応付けを示す表を前記画像形成装置が備える記憶手段に格納することを特徴とする画像形成装置である。
【0014】
請求項3に記載の発明は、請求項1又は2の記載において、前記プログラム取得手段は、Webサーバ機能を有し、前記クライアント端末からのアクセスに応じて前記入力画面データとしてのhtmlファイルを当該クライアント端末に送信する。
【0015】
本発明によれば、Webサーバ機能を用いたため、容易に入力画面データを送信できる。
【0020】
請求項に記載の発明は、請求項1ないし3のうちいずれか1項の記載において、前記画像形成装置の操作表示部におけるキーの入力を検出し、前記記憶手段に格納された前記表を参照することにより当該キーに対応するプログラムを前記プログラム実行手段により実行するものである
【0021】
本発明によれば、上記のキーを押すことにより上記のプログラムを実行できる。
【0030】
請求項5〜8に記載の発明は、上記の画像形成装置におけるプログラムの実行方法の発明である。請求項9〜12に記載の発明は画像形成装置におけるプログラムの発明であり、請求項13に記載の発明は上記のプログラムを格納した記録媒体の発明である。
【0031】
上記の発明によっても、画像形成装置の発明と同様の効果を奏する。
【0032】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる画像形成装置および操作表示部プログラム生成方法の好適な実施の形態を詳細に説明する。
【0033】
(実施の形態1)
図1は、この発明の実施の形態1である画像形成装置(以下、「複合機」という)の主要部の構成とネットワーク構成を示すブロック図である。実施の形態1にかかる複合機100は、インターネットに接続され、当該インターネットに接続されたPC(Personal Computer )などのクライアント端末から複合機の操作を行うオペレーションパネルの操作表示部のカスタマイズプログラムの入力およびデバッグ作業を行うことを可能としたものである。
【0034】
図1に示すように、複合機100とPC200は、インターネット220で接続されており、通信プロトコルとしてTCP/IPを利用している。複合機100は、複合機初期化部129と、プログラム起動部131と、プログラミングサービス132と、インタプリタ134と、NCS(ネットワークコントロールサービス)128と、httpd(httpデーモン)106と、共有メモリ105と、HDD103とを備えた構成となっている。
【0035】
プログラミングサービス132は、ネットワークに接続されたクライアント端末としてのPC200のWEBブラウザに後述するhttpファイルで構成されたWEBページであるプログラミング画面201を表示し、このプログラミング画面201からオペレーションパネル210の操作表示部のカスタマイズプログラムを入力させるものである。また、プログラミングサービス132は、PCから入力されたカスタマイズプログラムをHDD103のカスタマイズ領域として作成されたカスタマイズディレクトリ212に保存する。さらに、プログラミングサービス132は、複合機100上でカスタマイズプログラムが実行されるように、後述する起動設定ファイル211に入力されたカスタマイズプログラムを登録する。
【0036】
ここで、プログラミングサービス132とPC200のWEBブラウザの間のプログラミング画面などのhttpファイルの転送は、httpプロトコルに従って行われる。このため、プログラミングサービス132は、Webサーバ(http サーバ)としての役割も担っている。
【0037】
カスタマイズプログラムは、インタプリタで解釈可能な言語で記述され、具体的には、汎用OSがUNIX(登録商標)の場合、シェルスクリプトである。
【0038】
インタプリタ134は、カスタマイズプログラムをステップごとに解析し逐次実行するものであり、本実施の形態では、シェルスクリプトを実行するシェル(bsh,cshなど)である。このシェル134は、汎用OS121としてのUNIX (登録商標)にOSのカーネル135とは別個に存在するものである。
【0039】
プログラム起動部131は、HDD103の診断結果が正常である場合に、HDD103にインストールされている外部アプリ117を起動するものである。また、プログラム起動部131は、ICカードなどの記憶媒体に保存された外部アプリ117を起動する。
【0040】
複合機初期化部129は、汎用OS121の上で最初に起動されるプロセスであり、コントロールサービスやアプリケーション130(外部アプリ117を除く)の起動およびプログラム起動部131の起動を行うものである。
【0041】
NCS128は、ネットワークを制御するものであり、httpd106から通知されたリクエストメッセージ受信の旨をプログラミングサービス132に通知する。
【0042】
httpd106は、OSに含まれるプロセス(デーモン)であり、ポート80番を常時監視してリクエストメッセージの受信を行うとともに、レスポンスメッセージの送信を行うものである。なお、リクエストメッセージおよびレスポンスメッセージの構造は、通常のhttpプロトコルにおける各メッセージの構造と同様であり、各メッセージには、html形式で記述されたメッセージボディが含まれている。また、httpd106は、インターネット220経由で受信したリクエストメッセージ受信の旨をNCS128に通知するとともに、リクエストメッセージを共有メモリ105 に格納する。
【0043】
この共有メモリ105は、httpd106とプログラミングサービス132とのプロセス間通信に利用されるものであり、共有メモリ105を介してリクエストメッセージ、レスポンスメッセージなどの受け渡しを行う。
【0044】
HDD103には、起動設定ファイル211が格納され、またHDD103のカスタマイズディレクトリ212にカスタマイズプログラムが格納される。
【0045】
PC200は、複合機100のプログラミングサービス132をサーバとしたクライアント端末であり、PC200で実行されるWEBブラウザにプログラミングサービス132からhttpプロトコルで送信されたプログラミング画面201やその他画面を表示し、操作入力を行えるように構成されている。
【0046】
次に、本実施の形態にかかる複合機100の全体の機能的構成について説明する。図2は、実施の形態1の複合機100の構成を示すブロック図である。図2に示すように、複合機100は、白黒ラインプリンタ(B&W LP)101と、カラーラインプリンタ(Color LP)102と、ハードディスク装置(HDD)103と、スキャナ、ファクシミリ、メモリ、ネットワークインタフェースなどのハードウェアリソース104を有するとともに、プラットホーム120と、アプリケーション130と、複合機初期化部129と、プログラム起動部131と、プログラミングサービス132とから構成されるソフトウェア群110とを備えている。
【0047】
プラットホーム120は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一又は複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ(SRM)123と、汎用OS121とを有する。
【0048】
コントロールサービスは、複数のサービスモジュールから形成され、SCS(システムコントロールサービス)122と、ECS(エンジンコントロールサービス)124と、MCS(メモリコントロールサービス)125と、OCS(オペレーションパネルコントロールサービス)126と、FCS(ファックスコントロールサービス)127と、NCS(ネットワークコントロールサービス)128とから構成される。また、プログラミングサービス132も、コントロールサービス層に含まれている。なお、このプラットホーム120は、あらかじめ定義された関数により前記アプリケーション130から処理要求を受信可能とするアプリケーションプログラムインタフェース(API)を有する。
【0049】
汎用OS121は、UNIX(登録商標)などの汎用オペレーティングシステムであり、プラットホーム120並びにアプリケーション130の各ソフトウェアをそれぞれプロセスとして並列実行する。
【0050】
SRM123のプロセスは、SCS122とともにシステムの制御およびリソースの管理を行うものである。SRM123のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、HDDファイル、ホストI/O(セントロI/F、ネットワークI/F 、IEEE1394 I /F、RS232C I/Fなど)のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
【0051】
具体的には、このSRM123は、要求されたハードウェア資源が利用可能であるか(他の要求により利用されていないかどうか)を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、SRM123は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容(例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施している。
【0052】
SCS122のプロセスは、アプリ管理、操作部制御、システム画面表示、LED表示、リソース管理、割り込みアプリ制御などを行う。
【0053】
ECS124のプロセスは、白黒ラインプリンタ(B&W LP)101、カラーラインプリンタ(Color LP)102、スキャナ、ファクシミリなどからなるハードウェアリソース103のエンジンの制御を行う。
【0054】
MCS125のプロセスは、画像メモリの取得および解放、ハードディスク装置(HDD)の利用、画像データの圧縮および伸張などを行う。
【0055】
FCS127のプロセスは、システムコントローラの各アプリ層からPSTN/ISDN 網を利用したファクシミリ送受信、BKM (バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのAPIを提供する。
【0056】
NCS128のプロセスは、ネットワークI/O を必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。具体的には、ftpd、lpd、snmpd、telnetd、smtpdなどのサーバデーモンや、同プロトコルのクライアント機能などを有している。
【0057】
OCS126のプロセスは、オペレータ(ユーザ)と本体制御間の情報伝達手段となるオペレーションパネル(操作パネル)210の制御を行う。OCS126は、オペレーションパネルからキー押下(又はタッチ操作)をキーイベントとして取得し、取得したキーに対応したキーイベント関数をSCS122に送信するOCSプロセスの部分と、アプリケーション130又はコントロールサービスからの要求によりオペレーションパネルに各種画面を描画出力する描画関数やその他オペレーションパネルに対する制御を行う関数などがあらかじめ登録されたOCSライブラリの部分とから構成される。このOCSライブラリは、アプリケーション130およびコントロールサービスの各モジュールにリンクされて実装されている。なお、OCS126のすべてをプロセスとして動作させるように構成しても良く、あるいはOCS126のすべてをOCSライブラリとして構成しても良い。
【0058】
アプリケーション130は、ページ記述言語(PDL)、PCLおよびポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ111と、コピー用アプリケーションであるコピーアプリ112と、ファクシミリ用アプリケーションであるファックスアプリ113と、スキャナ用アプリケーションであるスキャナアプリ114と、ネットワークファイル用アプリケーションであるネットファイルアプリ115と、工程検査用アプリケーションである工程検査アプリ116 とを有している。
【0059】
アプリケーション130の各プロセス、コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信およびメッセージの送受信によってプロセス間通信を行いながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを実現している。
【0060】
このように、実施の形態1にかかる複合機100には、複数のアプリケーション130および複数のコントロールサービスが存在し、いずれもプロセスとして動作している。そして、これらの各プロセス内部には、一又は複数のスレッドが生成されて、スレッド単位の並列実行が行われる。そして、コントロールサービスがアプリケーション130に対し共通サービスを提供しており、このため、これらの多数のプロセスが並列動作、およびスレッドの並列動作を行って互いにプロセス間通信を行って協調動作をしながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを提供するようになっている。
【0061】
また、複合機100には、複合機100の顧客、サードベンダなどの第三者がコントロールサービス層の上のアプリケーション層に外部アプリを開発して搭載することが可能となっている。
【0062】
なお、実施の形態1にかかる複合機100では、複数のアプリケーション130のプロセスと複数のコントロールサービスのプロセスとが動作しているが、アプリケーション130とコントロールサービスのプロセスがそれぞれ単一の構成とすることも可能である。また、各アプリケーション130は、アプリケーションごとに追加又は削除することができる。
【0063】
また、複合機100はインストーラを含む。インストーラは、第三者が開発した外部アプリ117を、HDD103にインストールするものである。本実施の形態にかかる複合機100では、フラッシュカードなどのICカードの記憶媒体に外部アプリ117を格納し、インストーラによって外部アプリ117をHDD103にインストールし、プログラム起動部131によって、HDD103から外部アプリ117を起動してアプリケーション層で動作させるようになっている。一方、プリンタアプリ111、コピーアプリ112、ファックスアプリ113、スキャナアプリ114、ネットファイルアプリ115、工程検査アプリ116などの複合機100の出荷時に提供されるアプリケーション130、各コントロールサービス、HDD診断部132およびプログラム起動部131は、フラッシュメモリに出荷時に組み込まれており、複合機100の起動時(電源投入時)に複合機初期化部129によって起動されるようになっている。
【0064】
図3に複合機100のハードウェア構成例を示す。
【0065】
複合機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で接続されている。
【0066】
CPU161が、複合機100にインストールされるアプリケーション、コントロールサービス等のプログラムを、メモリから読み出して実行する。
【0067】
次に、以上のように構成された本実施の形態にかかる複合機100によるプログラム作成方法について説明する。まず、利用者は、PC200でWEBブラウザを起動し、複合機100上にあるプログラミング画面のWEBページのURL(例えば、http://www.xxx.yyy/zzz/debug.htm)を指定して複合機100のプログラミングサービス132にアクセスする。WEBブラウザからのアクセスを受けたプログラミングサービス132は、プログラミング画面201(debug.htm )をPC200のWEBブラウザに表示させる。
【0068】
図7は、プログラミング画面201の内容の一例を示す説明図である。図7に示すように、プログラミング画面201には、プログラム入力フィールドと、参照ボタンと、アップロードボタンと、保存ボタンと、消去ボタンと、テスト実行ボタンと、実行設定ボタンが表示される。
【0069】
ここで、プログラミング画面201は、html形式(Hyper TextMarkup Language)で記述されたファイル(debug.htm)がブラウザによって表示されたものである。また、プログラミングサービス132は、プログラミング画面(debug.htm)からの操作入力や要求に応じたカスタマイズプログラムの入力に関する処理等を、CGI(Common Gateway Interface)のスクリプトを実行することによって行い、その処理結果をプログラミング画面(debug.htm)に反映して、PC200のWEBブラウザに返す。
【0070】
具体的には、プログラミングサービス132は、カスタマイズプログラムの入力処理等の要求(ボタンのクリック操作等)があった場合には、debug.cgiのスクリプトを実行する。なお、本実施の形態では、CGIスクリプトを実行することにより、WEBアプリ1117による各処理を実行しているが、CGIスクリプトから呼び出される別のプログラムで実行するように構成しても良い。なお、プログラミング画面を、XML形式(eXtensible Markup Language )で記述するように構成することも可能である。
【0071】
参照ボタンは、ブラウザが動作しているPC200の記憶領域に格納されたカスタマイズプログラムを参照するためのボタンであり、この参照ボタンを押下すると、PC200の記憶領域内のディレクトリが表示され、所望のディレクトリに存在するカスタマイズプログラムを指定すると、ファイル名フィールドに指定されたカスタマイズプログラムのファイル名が表示される。なお、参照ボタンを押下したときに、複合機100のHDD103などの記憶媒体のディレクトリを参照するように構成しても良い。
【0072】
アップロードボタンは、参照ボタンで指定したカスタマイズプログラムあるいは入力フィールドに入力したカスタマイズプログラムを、複合機100に転送(アップロード)するためにクリック操作するものである。
【0073】
プログラム入力フィールドは、カスタマイズプログラムを入力する領域である。このプログラム入力フィールドには、PC200のキーボードなどの入力装置からカスタマイズプログラムを直接入力する他、上述のように参照ボタンをクリック操作することによってPC200の所望のディレクトリに存在する既存のプログラムファイルを指定することによってカスタマイズプログラムを入力する。debug.htmにおいて、このプログラム入力フィールドに相当するすべての行の先頭には、「program _list:」の文字列が記述されている。
【0074】
保存ボタンは、入力したカスタマイズプログラムを複合機100にアップロードした後に、カスタマイズディレクトリに格納する場合にクリック操作するものである。消去ボタンは、入力フィールドに入力されたカスタマイズプログラムを消去する際にクリック操作するものである。
【0075】
実行設定ボタンは、カスタマイズディレクトリに保存されたカスタマイズプログラムを複合機100で実行できるように、カスタマイズプログラムとカスタマイズプログラムを実行させるボタンを対応づける際にクリック操作するものである。この実行設定ボタンが押下されると、プログラミングサービス132は、カスタマイズプログラム中で指定されたボタン(キー)を、カスタマイズディレクトリに存在する画面ファイル中のボタン(キー)からキーコードに基づいて検索し、カスタマイズプログラムとボタン(キー)との対応付けを行い、カスタマイズプログラムの名称とボタン(キー)のキーコードのキー対応付けテーブルを生成してHDD103又はフラッシュメモリなどに当該テーブルを格納する。
【0076】
テスト実行ボタンは、入力されたカスタマイズプログラムを試験的に実行する際にクリック操作するものである。
【0077】
図8は、入力するカスタマイズプログラムの内容の一例を示す説明図である。図8に示すように、本実施の形態では、カスタマイズプログラムはUNIX(登録商標)のシェルスクリプトである。入力されたシェルスクリプトは、汎用OS121(UNIX(登録商標))のコマンド・インタプリタであるシェル134によってステップごとに逐次実行される。このため、入力したカスタマイズプログラムのコンパイルおよびリンクは不要である。
【0078】
また、シェルスクリプトには、開発ライブラリで提供される複合機専用コマンドを指定できるようになっている。図8のスクリプトは、原稿をスキャナで読み込み(scanimage)、読み込み時にTIF形式に圧縮された画像データを伸長し(decomp)、伸長した画像データに対し文字認識処理を行う(ocr)。そして、文字認識処理による認識結果をテキストデータとしてメール送信(mail)する例を示している。このスクリプトの中で、scanimage,decomp,ocrの各コマンドが開発ライブラリで提供されるコマンドである。また、カスタマイズプログラムには、このシェルスクリプトを実行するためのボタン(キー)の指定が可能となっている。
【0079】
PC200のWEBブラウザに表示されているプログラミング画面201(debug.htm)において、参照ボタンをクリックしてPC200に格納されているカスタマイズプログラムを指定し、あるいはプログラム入力フィールドに直接カスタマイズプログラムを入力し、アップロードボタンをクリック操作した場合、WEBブラウザから複合機100のプログラミングサービス132に対しリクエストメッセージが送信される。このリクエストメッセージのメッセージボディにはdebug.htmが含められており、このdebug.htmには、アップロードボタンをクリック操作したときにdebug.cgiを呼び出す旨が記述されている。このためリクエストメッセージを受信して解析を行ったプログラミングサービス132は、debug.cgiを実行する。
【0080】
ここで、リクエストメッセージを受信した複合機100における処理について説明する。図4は、リクエストメッセージを受信した複合機100における処理の手順を示すフローチャートである。
【0081】
httpd106は、ポート80番を常時監視しており、PC200からリクエストメッセージをポート80番で受信する(ステップS301)。そして、httpd106は、受信したリクエストメッセージを読み出し、リクエストメッセージを共有メモリ105に書き込む(ステップS302)。次に、httpd106は、リクエストメッセージ受信の旨をNCS128に通知する(ステップS303 )。
【0082】
通知を受けたNCS128は、さらにリクエストメッセージ受信の旨をプログラミングサービス132に通知する(ステップS304)。プログラミングサービス132は、リクエストメッセージ受信の旨の通知を受けたことをトリガとして、共有メモリ105を参照して、リクエストメッセージを読み出す(ステップS305)。そして、リクエストメッセージの内容を解析して(ステップS306)、リクエストメッセージのメッセージボディに記述された内容に応じた処理を実行する(ステップS307)。このとき、メッセージボディのhtml記述にCGIを実行する旨が記述されていれば、対応するCGIを実行する。
【0083】
そして、プログラミングサービス132は、処理の実行結果をレスポンスメッセージとして、httpd106経由でリクエストメッセージの送信元であるPC200 に返信する(ステップS308)。
【0084】
次に、プログラミングサービス132によるdebug.cgiの処理について説明する。図5は、debug.cgiの処理の手順を示すフローチャートである。なお、プログラミングサービス132がdebug.cgiのプログラムを含んでいてもよいし、debug.cgiがプログラミングサービス132の外部に存在してもよい。以下、プログラミングサービス132がdebug.cgiのプログラムを含む場合について説明する。
【0085】
プログラミングサービス132は、受信したリクエストメッセージの中のdebug.htmを先頭から一行づつ読み込む(ステップS401)。そして、読み込んだ行が「program_list:」の文字列を含むか否かを調べることにより、その行がプログラム入力フィールドか否かを判断する(ステップS402)。
【0086】
そして、プログラム入力フィールドであると判断した場合には、プログラムファイルに書き出し(ステップS403)、読み込んだ一行をそのままPC200に送信する(ステップS404)。
【0087】
そして、読み込んだ行が最終行か否かを判断し(ステップ405)、最終行であれば処理を終了し、最終行でなければ上記の処理を次の行に対して行う。これにより、複合機100において、プログラムファイルが作成され、PC200のWEBブラウザには、複合機100にアップロードされたプログラムの内容が順次表示されることになる。
【0088】
上記の方法の他、PC200で入力したプログラムを複合機に送信するには種々の方法がある。例えば、アップロードボタンを押すことにより、PC200で入力したプログラムをPC200でプログラムファイルとし、それを複合機に送信する。複合機では、そのプログラムファイルの内容を格納し、必要に応じて格納したプログラムファイルの内容をPC200に送信する。
【0089】
このようにプログラミング画面201から入力されたカスタマイズプログラムが複合機100にアップロードされ、プログラム入力フィールドにアップロード後のカスタマイズプログラムが表示された後、保存ボタン、実行設定ボタン、テスト実行ボタンのクリック操作が可能となる。これらのいずれかのボタンをクリック操作した場合におけるプログラミングサービス132の処理について説明する。
【0090】
図6は、プログラミング画面201において、保存ボタン、実行設定ボタン、テスト実行ボタンのいずれかのクリック操作が行われた場合のプログラミングサービス132の処理の手順を示すフローチャートである。以下の処理は、プログラミングサービス132におけるCGIスクリプトとしてのJava(登録商標)Scriptが実行する。すなわち、プログラミング画面201におけるボタン操作をPC200が検出してそのイベントをプログラミングサービスに送信し、プログラミングサービス132はそのイベントに応じたJava(登録商標)Scriptを実行する。以下、Java(登録商標)Scriptがプログラミングサービス132に含まれているものとして説明する。
【0091】
まず、プログラミングサービス132は、クリック操作されたボタンの種類を判断する(ステップS501)。プログラミング画面201で保存ボタンがクリックされた場合には、プログラミングサービス132は、ファイル名称を利用者に指定させ、カスタマイズプログラムを指定された名称で複合機100のHDD103のカスタマイズディレクトリに格納する(ステップS502 )。
【0092】
図9は、カスタマイズディレクトリに格納されたカスタマイズプログラムの名称の一例を示す説明図である。図9に示すように、複合機100のHDD103のカスタマイズディレクトリは、hdd/xxx/opepaneとなっており、このカスタマイズディレクトリにカスタマイズプログラムであるshell1,shell2 ,shell3 が格納されている。
【0093】
一方、プログラミング画面201で実行設定ボタンが押下された場合には、プログラミングサービス132は、上述のようにカスタマイズプログラムとボタンとの対応付けを行う(ステップS503)。
【0094】
図10は、キー対応付けテーブルの内容の一例を示す説明図である。図10に示すように、キー対応付けテーブルには、ボタンのキーコードとカスタマイズプログラム名称が対応付けられている。
【0095】
また、プログラミング画面201でテスト実行ボタンが押下された場合には、プログラミングサービス132は、格納されたカスタマイズプログラムの実行を行う(ステップS504)。これは、例えば、プログラミングサービス132がカスタマイズプログラをシェルで実行するためのコマンドを実行することによっておこなわれる。
【0096】
このとき、テスト実行によって、オペレーションパネル210に表示される画面と同一の画面をPC200で動作しているブラウザに表示する。これは、例えば、プログラミングサービス132が、プログラムのテスト実行により発生するオペレーションパネル画面への描画命令等を取得し、その描画命令に対応して表示される画面内容と同じ内容をPC200の画面に表示するような命令をPC200に対して送信することにより実現できる。
【0097】
テスト実行によってエラーが出た場合には、PC200でプログラムの修正を行い、修正したプログラムをアップロードし、再びテスト実行をする。
【0098】
次に、このようにして生成されたカスタマイズプログラムの実行処理について説明する。図11は、複合機100の電源投入が行われてから、カスタマイズプログラムの実行が可能となるまでの一連の処理の手順を示すフローチャートである。
【0099】
カスタマイズプログラムのカスタマイズディレクトリへの保存および起動設定ファイル211への設定が完了したら、利用者は複合機100の電源を再投入する。このとき複合機100では、ROMモニタ(図示せず)によってハードウェアの診断処理を行い(ステップS1001)、その後汎用OS121を起動し(ステップS1002)、さらに複合機初期化部129を起動する(ステップS1003 )。複合機初期化部129は、まずコントロールサービスの起動を行い(ステップS1004)、続いてコピーアプリ112、プリンタアプリ111などの複合機100の出荷時に提供されている既存アプリを起動し(ステップS1005 )、さらに出荷後新たに開発された外部アプリなどのプログラムを起動するためにプログラム起動部131を起動する(ステップS1006 )。
【0100】
プログラム起動部131は、まずHDD103の起動設定ファイル211を参照し(ステップS1007)、起動すべきプログラムの名称を取得する。
【0101】
図12は、起動設定ファイル211の一例を示す説明図である。図12に示すように、起動設定ファイル211には、「プログラム名称 カスタマイズプログラム名」の形式で、プログラム起動部131によって起動されるプログラムが登録されている。図12の例では、シェルスクリプトであるシェルのプログラムが最初に登録され、その後に、外部アプリとしてxxxアプリが登録されている。
【0102】
このため、図12の例では、プログラム起動部131は、まずシェルを起動し、次いで、外部アプリであるXXXアプリを順に起動するように設定されている。このため、プログラム起動部131は、まずインタプリタ134(シェル)を起動し(ステップS1008)、次いで、外部アプリであるXXXアプリを順に起動する(ステップS1009)。
【0103】
オペレーションパネル210の操作表示部に表示されたボタン(キー)の中で、カスタマイズプログラムが割り付けられたボタン(キー)を押下(タッチ操作)すると、シェルスクリプトで記述されたカスタマイズプログラムがシェルによって実行される。これは例えば次のようにして実行される。
【0104】
すなわち、カスタマイズプログラムが割り付けられたボタン(キー)の押下情報をプログラミングサービス132が取得し、キー対応付けテーブルを参照することによりそのボタンに対応するカスタマイズプログラムファイル名を取得する。そして、そのカスタマイズプログラムをシェルで実行するための命令を実行する。なお、上記の起動設定ファイルにカスタマイズプログラムを設定することにより、カスタマイズプログラムを実行してもよい。
【0105】
このように実施の形態1にかかる複合機100では、プログラミングサービス132によって、ネットワーク上のPC200に、カスタマイズプログラムのプログラミング画面を表示し、この画面からカスタマイズプログラムを入力させ、複合機100のシェル134によって、カスタマイズプログラムを実行する。これにより、カスタマイズプログラムの開発において、プログラミング画面から追加、修正ができ、また追加修正による再コンパイル、再リンクなしに複合機100で実行でき、プログラムの作成を容易に行うことができる。
【0106】
また、実施の形態1にかかる複合機100では、プログラミングサービス132によって、インターネットに接続されたPC200に対しプログラミング画面を表示し、この画面からカスタマイズプログラムを入力させているので、カスタマイズプログラムの入力を入力が容易なPC200で行うことができ、複合機100上でカスタマイズプログラムの作成編集を行う場合に比べて、カスタマイズプログラムの作成をより効率的に行うことができる。
【0107】
なお、実施の形態1にかかる複合機100では、インターネット220に接続されたクライアント端末としてのPC200の要求により、カスタマイズプログラムの入力処理を行っているが、インターネット以外のネットワーク、例えばLANなどに接続されたクライアント端末からカスタマイズプログラムの入力を行うように構成することも可能である。また、通信プロトコルとしては、TCP/IP以外のプロトコルを利用しても良い。
【0108】
また、上記の実施の形態では、複合機からPC200に対してプログラム入力画面を送信しているが、PC200が本実施の形態におけるプログラムの入力、送信などを行うプログラムを備えていてもよい。
【0109】
(実施の形態2)
実施の形態1にかかる複合機100は、ネットワーク接続されたクライアント端末であるPC200でカスタマイズプログラムを作成して複合機100に保存するものであったが、この実施の形態2にかかる複合機は、カスタマイズプログラムの入力を複合機100のオペレーションパネルから行うものである。
【0110】
図13は、実施の形態2にかかる複合機1100における主要構成を示すブロック図である。なお、複合機1100の他の構成については、図2に示した実施の形態1の複合機100の構成と同様である。図13に示すように、本実施の形態にかかる複合機1100は、複合機初期化部129と、プログラム起動部131と、プログラミングサービス1132と、インタプリタ(シェル)134と、HDD103とを備えた構成となっている。
【0111】
プログラミングサービス1132は、オペレーションパネル210の操作表示部にプログラミング画面を表示し、表示されたプログラミング画面からカスタマイズプログラムを入力させるものである。また、プログラミングサービス1132は、入力されたカスタマイズプログラムをHDD103のカスタマイズ領域として作成されたカスタマイズディレクトリ212に保存する。さらに、プログラミングサービス1132は、複合機1100上でカスタマイズプログラムが実行されるように、起動設定ファイルに入力されたカスタマイズプログラムを登録することもできる。
【0112】
なお、複合機初期化部129、プログラム起動部131、シェル134の機能およびHDD103の起動設定ファイル211およびカスタマイズ領域としてのカスタマイズディレクトリについては、実施の形態1にかかる複合機100と同様である。
【0113】
図14は、プログラミング画面1101の一例を示す説明図である。本実施の形態にかかる複合機1100において、カスタマイズプログラムを作成するためには、例えば、システム初期設定画面からプログラミングのタグを選択してプログラミング画面を表示させる。
【0114】
このプログラミング画面1101は、実施の形態1における同画面とほぼ同様に、入力フィールドと、参照ボタンと、保存ボタンと、実行設定ボタンと、テスト実行ボタンとが表示されている。かかるプログラミング画面1101では、タッチ操作でキー入力を行うソフトウェアキーボードを操作表示部に表示させて、入力フィールドにカスタマイズプログラムを入力することできる。
【0115】
しかしながら、操作表示部の領域サイズや入力の困難さから直接カスタマイズプログラムを入力することは困難である。このため、予めHDD103などの記憶媒体の所望の領域に、PCなどで作成したカスタマイズプログラムをネットワーク経由で格納し、プログラミング画面1101上の参照ボタンを押下して、カスタマイズプログラムを選択することにより、入力フィールドにカスタマイズプログラムを表示し、ソフトウェアキーボードを表示させ、プログラムの簡単な修正などだけを入力フィールドで行うことが好ましい。
【0116】
そして、カスタマイズプログラムが完成したら、保存ボタンを押下する。これによって、実施の形態1と同様に、プログラミングサービス1132によって、カスタマイズプログラムをHDD103のカスタマイズディレクトリに保存する。また、実行設定ボタンを押下すると、実施の形態1と同様に、プログラミングサービス1132によって、カスタマイズプログラムとカスタマイズプログラムで指定されたボタン(キー)のキーコードが対応付けられてテーブルとして保存される。なお、作成したカスタマイズプログラムの実行処理については、実施の形態1の複合機100 と同様である。
【0117】
このように実施の形態2にかかる複合機1100では、プログラミングサービス1132によって、オペレーションパネル210の操作表示部にプログラミング画面1101を表示し、この画面からカスタマイズプログラムを入力させているので、ネットワークに接続されていないスタンドアローンの複合機1100においてもカスタマイズプログラムを作成することができる。
【0118】
(実施の形態3)
実施の形態1および2の複合機100,1100は、カスタマイズプログラムと操作表示部のボタン(キー)との対応付けをカスタマイズプログラムの記述により行うものであったが、この実施の形態3にかかる複合機は、複合機の電源投入時にカスタマイズプログラムと操作表示部のボタン(キー)との対応付けを動的に行うものである。
【0119】
図15は、実施の形態3にかかる複合機1300の機能的構成を示すブロック図である。本実施の形態の複合機1300では、実施の形態1と同様に、ネットワーク上のPC200でカスタマイズプログラムの作成を行って、複合機1300のHD103に作成されたカスタマイズプログラムを保存して実行する。
【0120】
図15に示すように、本実施の形態の複合機1300は、オペパネ登録部133を備えている点が図2に示す実施の形態1の複合機100と異なっており、他の構成は実施の形態1の複合機100と同様である。
【0121】
オペパネ登録部133は、カスタマイズプログラムを実行させるためのボタン(キー)の割り付けを行うものである。すなわち、オペパネ登録部133によって割り付けたボタン(キー)をオペレーションパネル上で押下(タッチ操作)することによって、カスタマイズプログラムが実行される。
【0122】
PC200上からのカスタマイズプログラムの作成および保存の処理は、実施の形態1のプログラミングサービス131と同様に行われる。
【0123】
以下、カスタマイズプログラムと操作表示部に表示されるボタン(キー)の割付処理について説明する。カスタマイズプログラムのカスタマイズディレクトリへの保存が完了すると、作成したカスタマイズプログラムをオペレーションパネル210のボタン(キー)に割り付けるために、利用者は複合機100の電源を再投入する。
【0124】
図16は、複合機1300の電源投入が行われてから、カスタマイズプログラムとボタン(キー)との割り付けが完了するまでの一連の処理の手順を示すフローチャートである。
【0125】
複合機1300の電源投入からプログラム起動部131までの処理(ステップS1501〜S1506)については、実施の形態1の複合機100による処理(ステップS1001〜S1006)と同様である。
【0126】
起動されたプログラム起動部131は、まずHDD103の起動設定ファイル211を参照し(ステップS1507)、起動すべきプログラムの名称を取得する。図17は、本実施の形態で使用される起動設定ファイル211の内容の一例を示す説明図である。この例では、オペパネ登録部のプログラム、シェルおよび外部アプリであるXXX アプリを順に起動するように設定されている。
【0127】
このため、プログラム起動部131は、まずオペパネ登録部133のプログラムを起動する(ステップS1508)。なお、このオペパネ登録部133のプログラムは、予めカスタマイズディレクトリに格納されている。次いで、インタプリタ(シェル)134を起動し(ステップS1509)、最後に、登録されている外部アプリを起動する(ステップS1510)。
【0128】
起動されたオペパネ登録部133は、キー割り付け設定画面をオペレーションパネルに表示する(ステップS1511)。図18は、キー割り付け設定画面の一例を示す説明図である。図18に示すように、キー割り付け設定画面には、各カスタマイズプログラムごとに割り付け可能なボタン(キー)が表示され、かかる画面で所望のボタン(キー)を押下(タッチ操作)すると、オペパネ登録部133は、該当するカスタマイズプログラムの名称と押下されたボタン(キー)のキーコードとを対応付けて、HDD103又はフラッシュメモリなどの記憶媒体にテーブル情報として格納する(ステップS1512)。これによって、オペレーションパネルに表示されるボタン(キー)にカスタマイズプログラムが割り付けられることになる。
【0129】
このように実施の形態3にかかる複合機1300では、プログラミングサービス132によって、プログラミング画面201を表示してカスタマイズプログラムを入力させ、オペパネ登録部133によって、カスタマイズプログラムを操作表示部に表示および入力を行うボタン(キー)に割り付ける。このオペパネ登録部133を複合機1300の電源投入時に起動することにより、カスタマイズプログラムが実行される場合のボタン操作を複合機1300の起動時に動的に定めることができる。
【0130】
なお、本実施の形態では、オペパネ登録部133によってボタン(キー)への割り付け処理を行っているが、例えば、SCS122などのコントロールサービスでボタン(キー)割り付け処理を行うようにしてもよい。これにより、割り付け処理のために別途プログラムを起動する必要が無くなり、効率的な処理が行える。
【0131】
(実施の形態4)
実施の形態1〜3の複合機100,1100,1300は、シェルスクリプトとしてカスタマイズプログラムを複合機100,1300の汎用OS121で用意されたコマンドインタプリタであるシェル134によって実行するものであったが、この実施の形態4にかかる複合機は、シェル134以外のインタプリタを使用してカスタマイズプログラムを実行するものである。
【0132】
図19は、実施の形態4にかかる複合機1700を備えたネットワーク構成図であり、図20は、実施の形態4にかかる複合機1700の機能的構成を示すブロック図である。実施の形態4にかかる複合機1700は、実施の形態1と同様に、TCP/IPを利用したインターネットに接続され、当該ネットワークに接続されたクライアント端末であるPC200からカスタマイズプログラムの入力およびデバッグ作業を行うことを可能としたものである。なお、カスタマイズプログラムとしては、例えば、オペレーションパネル210の操作表示部にボタンを表示し、あるボタンを押したときにそのボタンに対応した処理を行うためのプログラムがある。
【0133】
本実施の形態の複合機1700では、カスタマイズプログラムを、Visual Basic(登録商標)言語で記述する。そして、作成されたカスタマイズプログラムを、汎用OS121の配下で動作するVisual Basicインタプリタで実行させている。
【0134】
図19に示すように、複合機1700は、複合機初期化部129と、プログラム起動部131と、プログラミングサービス132と、Visual Basicインタプリタ1734(以下、「VBインタプリタ1734」という。)と、NCS128と、httpd106と、共有メモリ105と、HDD103とを備えた構成となっている。なお、プログラミングサービス132、複合機初期化部129、プログラム起動部131、NCS128、httpd106の構成および機能、HDD103に格納される起動設定ファイル211の内容およびカスタマイズディレクトリについては、実施の形態1の複合機100と同様である。
【0135】
VBインタプリタ1734は、カスタマイズプログラムをステップごとに解析し逐次実行するものである。本実施の形態において、カスタマイズプログラムの作成および保存は、実施の形態1のプログラミングサービス132と同様に行われる。
【0136】
また、本実施の形態の複合機1700では、VBインタプリタ1734によってカスタマイズプログラムを実行させるため、複合機1700の起動時にVBインタプリタ1734も起動させておく必要がある。このため、実施の形態1と同様の起動設定ファイル211にVBインタプリタ1734のプログラム名称を予め設定しておく。
【0137】
図21は、起動設定ファイルの内容の一例を示す説明図である。図21に示すように、本実施の形態の複合機1700で使用する起動設定ファイル211には、先頭の行に「VBインタプリタプログラム」が設定されている。このため、プログラム起動部131は、起動設定ファイル211を参照した後、まずVBインタプリタ1734を起動することになり、これによってカスタマイズプログラムの実行が可能となる。
【0138】
このように実施の形態4にかかる複合機1700では、汎用OS121の配下で動作するVBインタプリタによってカスタマイズプログラムを実行するので、汎用OSで提供されるインタプリタよりも高度な処理を行えるインタプリタを利用することができる。従って、UNIX(登録商標)のシェルを用いるよりも高度なプログラムを容易に作成することが可能となる。
【0139】
なお、実施の形態4では、PC200上ではVBインタプリタはインストールされていないが、PC200にVisual Basic開発環境をインストールし、操作表示部の画面設計を含むプログラム作成をPC200上で行って、生成されたプログラムをファイル転送などを利用して、複合機1700のカスタマイズディレクトリに格納するように構成しても良い。
【0140】
また、実施の形態4の複合機1700では、インタプリタとしてVBインタプリタ1734を使用し、開発するカスタマイズプログラムをVisual Basic言語で記述していたが、この他、インタプリタ用の言語を用いても良い。例えば、複合機1700にJava(登録商標)VM(仮想マシン)を搭載し、カスタマイズプログラムをJava(登録商標)言語で記述するように構成することもできる。
【0141】
実施の形態1〜4にかかる複合機では、プログラミングサービス132をコントロールサービス層に搭載した構成としているが、アプリケーション層に搭載した構成とすることもできる。
【0142】
(実施の形態5)
実施の形態4にかかる複合機は、汎用OS121の配下で動作するインタプリタを使用してカスタマイズプログラムを実行するものであったが、この実施の形態5にかかる複合機1800は、VBインタプリタ1801とVBアプリ1802をアプリケーション層に搭載した構成としたものである。
【0143】
図22に、実施の形態5に係る複合機の機能構成のブロック図を示す。実施の形態5にかかる複合機は、実施の形態4と同様に、TCP/IPを利用したインターネットに接続され、当該ネットワークに接続されたクライアント端末であるPC200から、カスタマイズプログラムの入力およびデバッグ作業を行うことを可能としたものである。ただし、実施の形態5では、作成されたカスタマイズプログラム(以下、VBアプリと称する)を、アプリケーション層に搭載されたVisual Basicインタプリタ(以下、VBインタプリタと称する)で実行させている。なお、図中、プログラミングサービス132をアプリケーション層に搭載した構成としてもよい。
【0144】
Visual Basic開発環境をインストールしたPC200上でVBアプリの作成を行い、その作成したVBアプリを複合機に転送し、複合機でそのVBアプリを格納しておき、オペレーションパネルにおけるアプリ選択等に応じてVBアプリを起動してVBインタプリタ1801により実行するようにする。
【0145】
以下、より具体的に説明する。
【0146】
図23は、PC200上でVisual Basic開発環境を用いてVBアプリを作成している場面の例を示す図である。
【0147】
同図中の画面内にはProject2-Form2(Form)の表題がついたウィンドウと、Project2-Form2(コード)の表題がついたウィンドウが示されている。
【0148】
Project2-Form2(Form)の表題がついたウィンドウは、複合機のオペレーションパネルで表示されるメニュー画面を作成するためのものであり、表示されている状態では、3つのボタンが設定されており、一つは"SCAN"、一つは"FAX"あと一つは"START"のボタンである。これらのボタンが押された場合に、複合機のスキャニングやファックス送信などの動作が行われるように設計される。
【0149】
Project2-Form2(コード)の表題がついたウィンドウは、上記のパネルの画面中にあるボタンが押されたときの動作を記述するプログラミングを行うためのものである。
【0150】
図23に示す状態でプログラムの保存を行うと、Project2.vbpとForm2.frmという二つのファイルが生成される。Project2.vbpにはプロジェクトを管理するための情報や、プログラムを実行する際の条件となるものが、変数への値の設定として保存されている。
【0151】
Form2.frmは、VBインタプリタ1801によりインタプリトされるプログラムそのものであり、このVBアプリをPC200から複合機上のプログラミングサービス132を介してアップロードする。
【0152】
そして、プログラミング画面201でテスト実行ボタンが押下された場合には、複合機上のVBインタプリタ1801が起動され、入力されたVBアプリの実行が行われる。このとき、テスト実行によって、オペレーションパネル210に表示される画面と同一の画面をPC200で動作しているブラウザに表示する。
【0153】
図24、25に、VBインタプリタ1801により実行されるVBアプリの例を示す。
【0154】
図24に示すVBプログラムが複合機において実行されると、まず、NEXTWINボタンを含むウィンドウが表示される。そして、NEXTWINボタンが押されると、call("change_display", "Form2")により、関数change_display("Form2")が実行され、次の画面(Form2ウィンドウ)に切り替わる。
【0155】
図25に、そのForm2ウィンドウを表示するVBプログラムを示す。なお、Form2のVBプログラムは、図23に示した画面に対応する。
【0156】
Form2ウィンドウでは、SCANボタンが押されたときに、
Figure 0004198551
が実行される。
【0157】
最初のScanStart関数は、A4サイズの原稿をADFから読み込んで、2値画像としてTIFFフォーマットでHDD上のファイル"/work/tempfile"で保管することを意味している。この関数をVBインタプリタ1801が解釈して、複合機に動作を行わせることとなる。
次の行のgwOpItemCreate()は複合機におけるOCS126によりその機能が提供されている関数であり、現在表示されている画面に文字列を表示する機能を実行するものである。gwOpItemCreate()は、VBインタプリタ1801により、OCS126への関数コールとして実行される。
【0158】
このようにして作成されたVBアプリを複合機で実行させるには、図11に示した起動設定ファイルにVBインタプリタとVBアプリを設定し、例えば図10に示した手順と同様にして、VBインタプリタとVBアプリを起動する。
【0159】
複合機でのVBアプリ実行時、オペレーションパネルに表示操作を行うためには次のような処理を行う。まず、VBインタプリタ1801は、SCS122からの画面描画準備完了イベントを待ち、上記のイベントを受け取ったら、初期表示するウィンドウイメージを作成する(ルートウィンドウ生成)。次に、VBアプリが、ルートウィンドウ内の子ウィンドウの生成や文字列表示の関数を実行することにより初期画面を準備する。そして、画面準備完了を示す関数を実行することにより、画面の準備ができたことをSCS122に通知する。次に、オペレーションパネル上でアプリ選択ボタンが選択されると、SCS122から操作部オーナー移行要求のイベントが発行される。このイベントをVBアプリが受け取ると、操作部オーナー移行可能であることを示す関数を実行し、この時点で上記の初期画面が表示される。この後、VBアプリの実質的な処理がVBインタプリタ1801により実行される。
【0160】
上記のように、本実施の形態によれば、VBインタプリタを用いることにより効率良くアプリを開発することが可能となる。
(実施の形態6)
実施の形態5にかかる複合機は、VBインタプリタをアプリケーション層に搭載した構成としたものであったが、実施の形態6にかかる複合機は、Java(登録商標)実行環境をアプリケーション層に搭載した構成としたものである。
【0161】
図26に、実施の形態6に係る複合機1900の機能構成のブロック図を示す。同図に示すように、実施の形態6に係る複合機1900は、アプリケーション層にJava(登録商標)実行環境1901とJava(登録商標)アプリ1902を搭載した構成を有している。Java(登録商標)アプリケーションをPC(パーソナルコンピュータ)などで開発し、それを複合機にダウンロードしてJava(登録商標)実行環境1901を用いて実行する。
【0162】
図27は、PCにおけるJava(登録商標)開発環境と複合機1900におけるJava(登録商標)実行環境の構成を示す図である。
【0163】
同図に示すように、複合機1900におけるJava(登録商標)実行環境は、クラスライブラリ1911、仮想マシン1912、アプリケーション管理部1914を有している。
【0164】
クラスライブラリ1911は、Java(登録商標)アプリが容易に複合機を操作するためのサービスを提供するために用いられるクラスライブラリである。本実施の形態におけるクラスライブラリは、例えば、操作パネルクラス、イベントクラス、複合機制御クラス、ネットワークトランザクションクラス、基本的なJava(登録商標)クラスライブラリ等から構成される。なお、Java(登録商標)アプリ自身もクラスの集合であり、そのクラスがクラスライブラリのクラスを呼び出すことにより、アプリの処理が実行される。Java(登録商標)アプリに、それが使用するクラスライブラリのクラスの機能を全て含めることにより、クラスライブラリ1911を搭載しない構成もあり得る。
【0165】
Java(登録商標)のソースコードプログラムはコンパイルして中間コード形式のバイトコードされ、複合機にロードされる。仮想マシン1912はそのバイトコードを解釈・実行する。
【0166】
アプリケーション管理部1914は、Java(登録商標)アプリを管理する機能を有しており、例えば、Java(登録商標)アプリのリスト表示、起動や強制終了などのJava(登録商標)アプリ実行管理、Java(登録商標)アプリのロードやバージョンアップ、インストール済みのJava(登録商標)アプリの削除、アプリケーション登録のためのパスワード設定等を行う機能を有している。
【0167】
より詳細には、図28に示すように、Java(登録商標)の実行環境は更にネイティブプログラムインタフェース1913を有している。ネイティブプログラムインタフェース1913は、仮想マシン1912で実行されるJava(登録商標)コードが、C言語などの他のプログラミング言語で書かれたアプリケーションやライブラリと相互運用するための機能を有している。このネイティブプログラムインタフェース1913の機構を用いて、アプリはコントロールサービスのAPIにアクセスできる。
【0168】
図27に示すJava(登録商標)開発環境は、Java(登録商標)の実行環境と同様のクラスライブラリ1921、仮想マシン1922、アプリケーション管理部1924を有している。また、更に、バイトコードを生成するためのJava(登録商標)コンパイラ1925と、アプリによる複合機の操作をエミュレートするエミュレータ1923を有している。このJava(登録商標)開発環境で開発されたJava(登録商標)アプリは、ICカード等の記録媒体を介して複合機のJava(登録商標)実行環境にロードできる。また、ネットワークを介してロードすることもできる。
【0169】
例えば、図29に示すように、WebサーバにJava(登録商標)開発環境で開発したJava(登録商標)アプリを格納しておき、Java(登録商標)実行環境からWebサーバにアクセスしてJava(登録商標)アプリをロードするように構成できる。また、Webサーバの代わりにFTPサーバを使用することもできる。
【0170】
(Java(登録商標)アプリケーションの開発)
次に、Java(登録商標)開発環境でのJava(登録商標)アプリの開発について詳細に説明する。
【0171】
図30は、Java(登録商標)アプリ開発の流れを示す図である。このように、まず、Java(登録商標)のソースコードをJava(登録商標)ファイルとして作成し、これをJava(登録商標)コンパイラでコンパイルし、クラスファイルとする。そして、複数のクラスをまとめてJarファイルとする。なお、Jarファイルにはmainルーチンを持つクラスを示すファイルを含めておくことが好ましい。
【0172】
このようにして作成したJava(登録商標)アプリを、これまでに説明した実施の形態と同様にして複合機上でテスト実行することにより、デバッグを行うことが可能であるが、本実施の形態では、図27に示すエミュレータ1923を用いることにより、ターゲットである複合機を用いずにJava(登録商標)アプリのデバッグをすることが可能である。これは、Java(登録商標)では、仮想マシンを使用する構成となっているため、実行環境をエミュレートすることが比較的容易であることによる。エミュレータを用いた開発が完了したら、Java(登録商標)アプリ(バイトコード)をネットワーク又はICカードを介して複合機にロードすることにより、複合機を用いた評価を行うことが可能である。
【0173】
エミュレータは、Java(登録商標)アプリ側からの命令を受信し、それに応じた動作を行うように記述したプログラムとして構成することができる。例えば、複合機のオペレーションパネルの表示部への表示命令に対しては、複合機上に表示する画面と同様の画面をPCのディスプレイ上に表示する。ただし、開発環境であるPCには複合機におけるエンジン(スキャナ、プリンタなど)がないので、例えば、Java(登録商標)アプリからのプリント命令に対しては、PCの画面上にプリントを行う画像を表示したり、PC自身に接続されているデフォルトのプリンタに印刷を行う。また、ユーザがコピー操作をPCのエミュレータ画面上でした場合には、例えば、ユーザにコピー対象となるファイルをローカルファイルシステムから選ぶように通知し、コピーのあて先を尋ねるダイアログボックスを表示し、選択されたファイルをその指定された宛先にコピーする。
【0174】
なお、エミュレータは、図27に示すように仮想マシンとクラスライブラリとは別のプラグラムとして実装することもできるし、図31に示すように、クラスライブラリの中のクラスとして実装することもできる。
【0175】
図32に、エミュレータによりPCに表示されるオペレーションパネル画面を示す。この画面に表示されるボタンなどの要素は、実際の複合機のものと同等である。また、エミュレータは、格納したJava(登録商標)アプリを選択して実行するローダーの機能も有している。ローダーとして動作する場合には、例えば、図33に示す画面を表示する。そして、ユーザはJava(登録商標)アプリを選択し、実行ボタンを押すことによりJava(登録商標)アプリが実行される。なお、ここで表示されるJava(登録商標)アプリは、mainルーチンを持つクラス名、もしくはJarファイル名である。
【0176】
エミュレータは、エミュレータ上で動作するアプリケーションの状態状態情報を自動的にログファイルに収集する機能も有しており、どのようなメッセージをログとして残すかの設定もできる。例えば、アプリを異常終了させるような深刻なエラーのみをログとして収集するように設定したり、アプリケーションのデバッグに有益な詳細情報をログとして収集するように設定することができる。
【0177】
エミュレータを用いて開発環境側でプログラムのデバッグを行うことは、他の実施の形態においても適用可能である。すなわち、例えば実施の形態1において、PC200にインタプリタと、本実施の形態と同様のエミュレータを搭載する。プログラムのデバッグが進んだところで、評価のために複合機にアクセスしてプログラムを送信する。
【0178】
(Java(登録商標)アプリケーションの例)
次に、Java(登録商標)アプリケーションの例について説明する。ここでは、操作パネルクラスを使用したサンプルプログラムを使用したJava(登録商標)アプリの例について説明する。図34に、操作パネルクラスの階層構成を示す。
【0179】
図34中、***Windowのクラスはウィンドウ作成のためのクラスであり、****Itemのクラスは、ボタンなどのウィンドウ中におけるエレメントを作成するためのクラスである。例えば、以下に示すコードを含むプログラムにより、図35に示すようなメインウィンドウとその中のエレメントが作成される。
【0180】
Figure 0004198551
上記の(a)は、幅640ドット、高さ240ドットのメインウィンドウを作成するためのコードである。(b)は、メインウィンドウの位置(20、20)に幅600、高さ40のメッセージアイテムを作成するためのコードである。(c)は、(10、60)の位置に、サイズ80×30のボタンを作成するためのコードである。
【0181】
図36に示すプログラムは、複合機のオペレーションパネルにユーザーインタフェースを実装するプログラムである。図37に示すように、このプログラムは起動直後に”Hello World”及び”Your Input Was…”のメッセージと”Get Input…”のボタンを表示する。ユーザーが”Get Input…”のボタンに触れると、パネル上にソフトキーボードを表示し、ソフトキーボードには、”Add your Input”のタイトルが表示され、ユーザーに任意のコード入力を促す。ユーザーが、ソフトキーボードから任意の文字列、例えば、“ABCD!”を入力した場合、パネル上の”Your Input Was…”のメッセージの下にユーザーが入力した文字列を表示、すなわち、“ABCD!”を表示する。
【0182】
以下、図36に示すサンプルプログラムの内容について、プログラム中に記述した注釈の番号に沿って説明する。
【0183】
▲1▼は、操作パネルクラスライブラリを使用するための命令である。▲2▼は、GWAppを継承することを示し、これにより複合機のアプリケーション雛型(抽象)を使用することが可能となる。また、複雑な初期設定や終了処理をユーザーが記述せずに済み、メッセージ受信などの処理もユーザーに対して隠蔽することができる。また、▲3▼ により“Hello World”のメッセージを表示するオブジェクトを生成し、▲4▼ により“Get Input...”のボタンオブジェクトを生成する。そして、▲5▼ により“Your Input Was...” のメッセージを表示するオブジェクトを生成し、▲6▼ によりソフトキーボードから入力した文字を表示するメッセージオブジェクトを生成する。
【0184】
(Java(登録商標)実行環境におけるJava(登録商標)アプリの実行について)
図27に示す構成において、アプリケーション管理部1914の機能を用いることにより、以下のような手順でダウンロードから起動までの処理を行うことが可能である。
【0185】
アプリケーション管理部1914は、他のアプリケーションと同様にして複合機の起動時に起動され、アプリケーション起動キー等を押すことにより、オペレーションパネルにユーザーインタフェースを表示する。このとき、Java(登録商標)アプリがロードされていない場合は、アプリケーションロード画面を表示する。ユーザーは、このアプリケーションロード画面から所定のWebサイト又は、ICカードにアクセスし、Java(登録商標)アプリをロードする。
【0186】
ロードの処理においては、Java(登録商標)アプリをロードする前に、当該Webサーバ等に対してJava(登録商標)アプリに関する情報の問い合わせを行い、インストール可能であるJava(登録商標)アプリであるか否かを確認する。確認項目は、例えば、プログラムサイズ、バージョン確認、プログラム最終更新情報、使用するメモリワークサイズ、使用するストレージサイズ、あらかじめ使用するネットワークアドレスの確認、利用可能期間(利用回数)、アプリケーションプログラム名等である。
【0187】
上記の事項を確認し、インストール可能であると判断した場合は、アプリケーション管理部1914がJava(登録商標)アプリケーションファイルを複合機にダウンロードする。
【0188】
そして、Java(登録商標)アプリケーションプログラムのダウンロードが終了すると、アプリケーション管理部1914は、アプリケーション名を取得し、アプリケーションリストに追加し、同時にJava(登録商標)アプリケーションプログラムを複合機のハードディスクに格納する。
【0189】
以上の処理が完了することにより、ダウンロードしたJava(登録商標)アプリを利用できる状態になり、ユーザーは、アプリケーション管理部1914が提供するJava(登録商標)アプリケーション起動画面から起動するJava(登録商標)アプリを選択することにより、仮想マシンを起動し、Java(登録商標)アプリを実行することができる。
【0190】
次のようにしてJava(登録商標)アプリを実行することも可能である。次に説明する方法は、図29に示した構成において、Java(登録商標)アプリをWebサーバからロードして実行する例である。以下の処理は、アプリケーション管理部1914に含まれるローダー(プログラム)により実行される。なお、ローダー自身はJava(登録商標)アプリとして実装してもよいし、例えばC言語で実装してもよい。
【0191】
図38に、図29に示した構成におけるJava(登録商標)アプリのアップロードからダウンロードまでの概念図を示す。このように、Java(登録商標)開発環境において、開発、テストされたJava(登録商標)アプリをWebサーバにアップロードする(ステップ1)。複合機のローダーは、Webサーバにアクセスし(ステップ2)、ユーザ所望のJava(登録商標)アプリをダウンロードし(ステップ3)、実行する。
【0192】
次に、図39のフローチャートを参照してローダーの処理手順について説明する。
【0193】
ユーザが複合機におけるアプリ切り替えのための所定のボタンを押すことにより、ローダーはJava(登録商標)アプリが既にロードされているか否かをチェックし(ステップ11)、ロードされていればJava(登録商標)アプリを実行する(ステップ12)。そして、Java(登録商標)アプリユーザーインタフェースが表示される。ロードされていなければローダーの画面が表示される(ステップ13)。なお、Java(登録商標)アプリの実行が終了した場合にはローダーの画面が表示される。また、Java(登録商標)アプリのユーザーインタフェースが表示されているときに、所定のコードを入力して所定のボタンを押すことにより、ローダーの画面を表示することができる。
【0194】
図40に、複合機に表示されるローダーの画面を示す。ローダーには、現在ロードされているJava(登録商標)アプリがあればそのJava(登録商標)アプリと、ローダーがJava(登録商標)アプリの更新をWebサーバに対してチェックする頻度が表示される。
【0195】
ローダーの画面において、アプリのロードのボタンに触れると、図41に示すアプリロードウィンドウが表示される(ステップ14)。ここでJava(登録商標)アプリのURLを入力する。URLを入力するには、URLボタンに触れ、ソフトキーボードを表示させ、ソフトキーボードからタイプすることによりURLを入力する。また、URLボタンに触れることにより、図42に示すようなJava(登録商標)アプリのURLのリストを表示し、そのリストの中から所望のJava(登録商標)アプリを選択するようにしてもよい。また、必要に応じて、図41に示すクラス名の欄に、選択したJava(登録商標)アプリ(Jarファイル)の中のmainルーチンを持つクラス名を入力する。
【0196】
その後、図41に示す画面のOKボタンに触れることにより、Java(登録商標)アプリがWebサーバからダウンロードされ(ステップ15)、複合機で実行される。
【0197】
ローダーは自動的に、指定された間隔でWebサーバをチェックし、新たなバージョンのJava(登録商標)アプリがWebサーバに格納されているか否かを確認する。これは、現在動作しているJava(登録商標)アプリの日付とタイムスタンプを、Webサーバ上のものと比較することにより行う。新たなバージョンのJava(登録商標)アプリが発見された場合には、現在作動しているJava(登録商標)アプリは削除され、新しいバージョンのJava(登録商標)アプリがダウンロードされる。
【0198】
上記の更新間隔を変更するには、図40に示す画面上の更新間隔ボタンに触れることにより、図43に示す画面が表示される(ステップ16)。この画面の中で矢印キーを用いて時間か分かを選択し、オペレーションパネルの数字キーを用いて新たな時間間隔を入力する。
【0199】
複合機からJava(登録商標)アプリを削除する場合には図40に示す画面のアンロードのボタンに触れることにより、図44に示す画面を表示する(ステップ17)。ここで“OK”ボタンに触れることによりJava(登録商標)アプリが削除される。
【0200】
図40の画面におけるExitボタンに触れることによりローダーが終了する。
【0201】
さて、本実施の形態では、Java(登録商標)アプリを連結することにより、カスタマイズプログラムを作成することが可能である。この処理の流れについて図45を参照して説明する。なお、カスタマイズプログラムを作成するプログラム自体もJava(登録商標)アプリであり、以下これをカスタマイズアプリと呼ぶ。なお、カスタマイズアプリは予め画像形成装置内に備えられていてもよい。
【0202】
まず、操作表示部の画面を図40のローダ画面に切り替え、カスタマイズアプリをロードし、実行する。
【0203】
カスタマイズアプリは図45の画面1を表示する。画面1には、紙(paper)のオブジェクトだけが表示される。なお、紙のオブジェクト以外のオブジェクトを入れることもできる。オブジェクトは“入れる”ボタン、“取り出す”ボタンにより出し入れをすることができる。また、画面1において、紙のオブジェクトには読み書き許可属性などの属性を“読書許可”ボタンにより設定することができる。
【0204】
画面1においてpaperに触れると、画面2に示すように、paperオブジェクトに接続されるオブジェクトのリストが表示される。ここでscanを選択すると、画面3に遷移し、さらにscanに触れることにより、scanオブジェクトに接続されるオブジェクトのリストが画面4のように表示される。画面4においてmailを選択すると画面5に遷移する。
【0205】
その後、“設定”ボタンに触れることにより、スキャンして、その画像ファイルをメールにて送信するという処理を行うカスタマイズプログラムが生成される。また、画面6に示すようにキーがアサインされる。複合機でこのキーを操作することにより、上記のカスタマイズプログラムが実行される。このカスタマイズプログラムは、連結されたオブジェクトのクラスを順次実行するように記述されたプログラムである。
【0206】
なお、本実施の形態のようにWebサーバにアプリを格納しておき、Webサーバから複合機に所望のアプリをダウンロードすることや、アプリを連結してカスタマイズすることは、他の実施の形態にも適用可能である。例えば、VBインタープリタを用いた前述した構成において、本実施の形態と同様の機能のローダーを備えることにより、本実施の形態と同様にサーバからアプリをダウンロードできる。
【0207】
なお、これまでに説明した各サービスプログラム、アプリケーションプログラムは、ICカード等の記録媒体に格納し、そこから画像形成装置に格納することができる。また、ネットワークを介して外部のサーバから画像形成装置に格納することもできる。
【0208】
上記のように、本実施の形態によれば、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(登録商標)コンパイラ

Claims (13)

  1. クライアント端末にプログラムの入力画面データをネットワークを介して送信し、当該クライアント端末に入力されたプログラムを受信するプログラム取得手段と、
    前記プログラム取得手段によって受信した前記プログラムを実行するプログラム実行手段と、を備えた画像形成装置であって、
    前記クライアント端末からの要求に応じて、前記プログラム取得手段が受信した前記プログラムに、前記画像形成装置の操作表示部におけるキーを対応付け、当該プログラムと当該キーとの対応付けを示す表を前記画像形成装置が備える記憶手段に格納することを特徴とする画像形成装置。
  2. クライアント端末にプログラムの入力画面データをネットワークを介して送信し、当該クライアント端末に入力されたプログラムを受信するプログラム取得手段と、
    前記プログラム取得手段によって受信した前記プログラムを実行するプログラム実行手段と、を備えた画像形成装置であって、
    前記プログラムに対するキーの割り当てをユーザが行うためのキー割付け画面を前記画像形成装置の操作表示部に表示し、前記プログラムに、前記キー割付け画面においてユーザにより指定されたキーを対応付け、当該プログラムと当該キーとの対応付けを示す表を前記画像形成装置が備える記憶手段に格納することを特徴とする画像形成装置。
  3. 前記プログラム取得手段は、Webサーバ機能を有し、前記クライアント端末からのアクセスに応じて前記入力画面データとしてのhtmlファイルを当該クライアント端末に送信する請求項1又は2に記載の画像形成装置。
  4. 前記画像形成装置の操作表示部におけるキーの入力を検出し、前記記憶手段に格納された前記表を参照することにより当該キーに対応するプログラムを前記プログラム実行手段により実行する請求項1ないし3のうちいずれか1項に記載の画像形成装置。
  5. 画像形成装置におけるプログラムの実行方法であって、
    クライアント端末にプログラムの入力画面データをネットワークを介して送信するステップと、
    当該クライアント端末に入力されたプログラムを受信するステップと、
    前記クライアント端末からの要求に応じて、前記プログラムに、前記画像形成装置の操作表示部におけるキーを対応付け、当該プログラムと当該キーとの対応付けを示す表を前記画像形成装置が備える記憶手段に格納するステップと、
    受信した前記プログラムを実行するステップと、
    を有することを特徴とするプログラム実行方法。
  6. 画像形成装置におけるプログラムの実行方法であって、
    クライアント端末にプログラムの入力画面データをネットワークを介して送信するステップと、
    当該クライアント端末に入力されたプログラムを受信するステップと、
    前記プログラムに対するキーの割り当てをユーザが行うためのキー割付け画面を前記画像形成装置の操作表示部に表示し、前記プログラムに、前記キー割付け画面においてユーザにより指定されたキーを対応付け、当該プログラムと当該キーとの対応付けを示す表を前記画像形成装置が備える記憶手段に格納するステップと、
    受信した前記プログラムを実行するステップと、
    を有することを特徴とするプログラム実行方法。
  7. 前記画像形成装置は、前記クライアント端末からのアクセスに応じて前記入力画面データとしてのhtmlファイルを当該クライアント端末に送信する請求項5又は6に記載のプログラム実行方法。
  8. 前記画像形成装置の操作表示部におけるキーの入力を検出し、前記記憶手段に格納された前記表を参照することにより当該キーに対応するプログラムを実行する請求項5ないし7のうちいずれか1項に記載のプログラム実行方法。
  9. 画像形成装置を、
    クライアント端末にカスタマイズプログラムの入力画面データをネットワークを介して送信し、当該クライアント端末に入力されたカスタマイズプログラムを受信するプログラム取得手段、
    前記クライアント端末からの要求に応じて、前記カスタマイズプログラムに、前記画像形成装置の操作表示部におけるキーを対応付け、当該カスタマイズプログラムと当該キーとの対応付けを示す表を前記画像形成装置が備える記憶手段に格納する手段、
    として機能させるためのプログラム。
  10. 画像形成装置を、
    クライアント端末にカスタマイズプログラムの入力画面データをネットワークを介して送信し、当該クライアント端末に入力されたカスタマイズプログラムを受信するプログラム取得手段、
    前記カスタマイズプログラムに対するキーの割り当てをユーザが行うためのキー割付け画面を前記画像形成装置の操作表示部に表示し、前記プログラムに、前記キー割付け画面においてユーザにより指定されたキーを対応付け、当該プログラムと当該キーとの対応付けを示す表を前記画像形成装置が備える記憶手段に格納する手段、
    として機能させるためのプログラム
  11. 前記プログラム取得手段は、Webサーバ機能を有し、前記クライアント端末からのアクセスに応じて前記入力画面データとしてのhtmlファイルを当該クライアント端末に送信する請求項9又は10に記載のプログラム。
  12. 前記画像形成装置を、
    前記画像形成装置の操作表示部におけるキーの入力を検出し、前記記憶手段に格納された前記表を参照することにより当該キーに対応するプログラムを実行する手段として更に機能させる請求項9ないし11のうちいずれか1項に記載のプログラム
  13. 請求項ないし12のうちいずれか1項に記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
JP2003199948A 2002-07-26 2003-07-22 画像形成装置およびプログラム実行方法 Expired - Lifetime JP4198551B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2003199948A JP4198551B2 (ja) 2002-07-26 2003-07-22 画像形成装置およびプログラム実行方法
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
CNB03160255XA CN1273888C (zh) 2002-07-26 2003-07-28 成像装置、信息处理装置、程序执行方法及程序生成方法
CN 200510113871 CN1818871B (zh) 2002-07-26 2003-07-28 信息处理装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002218814 2002-07-26
JP2002295378 2002-10-08
JP2003199948A JP4198551B2 (ja) 2002-07-26 2003-07-22 画像形成装置およびプログラム実行方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008201193A Division JP2009064422A (ja) 2002-07-26 2008-08-04 画像形成装置およびプログラム実行方法

Publications (2)

Publication Number Publication Date
JP2004185594A JP2004185594A (ja) 2004-07-02
JP4198551B2 true JP4198551B2 (ja) 2008-12-17

Family

ID=32776759

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003199948A Expired - Lifetime JP4198551B2 (ja) 2002-07-26 2003-07-22 画像形成装置およびプログラム実行方法

Country Status (1)

Country Link
JP (1) JP4198551B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4862094B2 (ja) * 2004-09-07 2012-01-25 株式会社リコー 端末装置、情報処理方法、情報処理プログラム、及び記録媒体
JP4769515B2 (ja) * 2004-09-07 2011-09-07 株式会社リコー アプリケーション実行方法、情報処理装置、画像形成装置、アプリケーション実行プログラム、記録媒体、及び情報処理システム
US8264717B2 (en) 2005-07-11 2012-09-11 Ricoh Company, Ltd. Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium
JP2007048270A (ja) * 2005-07-11 2007-02-22 Ricoh Co Ltd 画像形成装置、情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
JP4843444B2 (ja) 2006-10-05 2011-12-21 株式会社リコー 通信制御装置、情報処理装置、通信制御方法及び通信制御プログラム
JP5042079B2 (ja) * 2008-03-13 2012-10-03 株式会社リコー 画像処理装置及びアプリケーション起動方法
JP2008301484A (ja) * 2008-05-19 2008-12-11 Canon Inc シンジケーションデータの構造
US8504612B2 (en) 2009-12-22 2013-08-06 Kyocera Document Solutions Inc. Image forming system, image forming apparatus, and image forming method for the development, distribution, and maintenance of image forming apparatus operation screens
JP4653243B2 (ja) * 2010-03-19 2011-03-16 キヤノン株式会社 画像処理装置およびその制御方法とプログラム
JP5555675B2 (ja) * 2011-07-29 2014-07-23 京セラドキュメントソリューションズ株式会社 情報処理装置、動作制御アプリケーション生成システム、及び動作制御アプリケーション生成プログラム
JP6274174B2 (ja) * 2015-09-29 2018-02-07 コニカミノルタ株式会社 画像処理装置、方法およびプログラム

Also Published As

Publication number Publication date
JP2004185594A (ja) 2004-07-02

Similar Documents

Publication Publication Date Title
US7554685B2 (en) Image forming apparatus, information processing apparatus, program execution method and program producing method
US10944880B2 (en) Image forming apparatus and scanned data process method
US7533381B2 (en) Image forming apparatus and method for operating image forming apparatus by using remote application
US8094330B2 (en) Image forming apparatus that can launch external applications selectively after shipment of the apparatus
JP2004185595A (ja) 情報処理装置およびそのプログラム
JP4344203B2 (ja) 画像形成装置および情報表示方法
JP4198551B2 (ja) 画像形成装置およびプログラム実行方法
JP2004185593A (ja) 画像形成装置およびアプリケーション実行方法
JP2004118237A (ja) 画像形成装置およびアプリケーションインストール方法
JP2004054791A (ja) 画像形成装置、アプリケーションインストール方法およびカスタマイズプログラム生成方法
JP4394740B2 (ja) 画像形成装置、方法、及びプログラム
JP4512565B2 (ja) 画像形成装置およびアプリケーションインストール方法
JP4523991B2 (ja) 端末装置、方法、システム、及びプログラム
JP2002251261A (ja) 画像出力装置および情報処理装置およびデータ処理方法および記憶媒体
JP4542180B2 (ja) 画像形成装置、プログラム、及び記録媒体
JP4133085B2 (ja) 画像形成装置およびカスタマイズプログラム試験方法
JP4500333B2 (ja) 画像情報処理装置、インストール方法、プログラムおよび記録媒体
CN100394386C (zh) 信息处理装置
JP2010218469A (ja) 情報処理装置、情報処理方法、プログラムおよび記録媒体
JP2006271005A (ja) 画像形成装置およびアプリケーションインストール方法
JP2003263321A (ja) 画像形成装置用アプリケーション生成方法、画像形成装置用アプリケーション起動方法、画像形成装置用アプリケーション生成プログラム、画像形成装置および画像形成装置用アプリ開発記録媒体
JP2003256238A (ja) アプリケーション生成方法、アプリケーション起動方法、アプリケーション生成プログラム、情報処理装置およびアプリ開発記録媒体

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 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080804

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080902

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081001

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111010

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4198551

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121010

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131010

Year of fee payment: 5

EXPY Cancellation because of completion of term